Имеем:
# ls /root -1
intermidiate.ca - промежуточный сертификат
root.ca - корневой сертификат
domain.crt - сертификат домена
domain.key - ключ
# cat inter.ca root.ca > domain.ca
# openssl pkcs12 -export -in domain.crt -inkey domain.key -out keystore.p12 -name domain -CAfile domain.ca -caname root
Enter Export Password: 123456
Verifying - Enter Export Password: 123456
Создаем хранилище ключей и импортируем сертификат:
# cp keystore.p12 /etc/tomcat7/
# cd /etc/tomcat7/
# keytool -importkeystore -deststorepass 123456 -destkeystore keystore.kdb -srckeystore keystore.p12 -srcstoretype PKCS12 -srcstorepass 123456
Entry for alias sert successfully imported.
Import command completed: 1 entries successfully imported, 0 entries failed or cancelled
Добавляем промежуточный сертификат:
# keytool -import -trustcacerts -alias intermediate -file /root/intermediate.ca -keystore keystore.kdb
# keytool -list -keystore keystore.kdb
Enter keystore password: 123456
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 2 entries
domain, Apr 1, 2016, PrivateKeyEntry,
Certificate fingerprint (SHA1): B6:4C:05:97:F2:2A:2C:2A:95:5E:7A:E4:E3:8D:9C:CC:10:7E:3C:B7
intermediate, Apr 1, 2016, trustedCertEntry,
Certificate fingerprint (SHA1): 73:6A:4D:C6:79:D6:82:DA:32:15:63:64:7C:60:F6:99:F0:DF:C2:68
В конфиге раскомментируем строку с AprLifecycleListener и коннектор для порта 8443:
# vim /etc/tomcat7/server.xml
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
...
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/etc/tomcat7/keystore.kdb"
keystorePass="123456"
keyAlias="sert" />
Проверка:
# service tomcat7 start
# lsof -i :8443
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 8348 tomcat7 45u IPv6 614620 0t0 TCP *:8443 (LISTEN)
Если нужно чтобы SSL работал на порту 443, то можно сделать перенаправление трафика вот так:
# iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 8443 -j ACCEPT
# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443
# ls /root -1
intermidiate.ca - промежуточный сертификат
root.ca - корневой сертификат
domain.crt - сертификат домена
domain.key - ключ
Нужно для сайта установить SSL-сертификат, на порт по умолчанию (443).
Создаем цепочку сертификатов и создаем файл в формате pkcs12:# cat inter.ca root.ca > domain.ca
# openssl pkcs12 -export -in domain.crt -inkey domain.key -out keystore.p12 -name domain -CAfile domain.ca -caname root
Enter Export Password: 123456
Verifying - Enter Export Password: 123456
Создаем хранилище ключей и импортируем сертификат:
# cp keystore.p12 /etc/tomcat7/
# cd /etc/tomcat7/
# keytool -importkeystore -deststorepass 123456 -destkeystore keystore.kdb -srckeystore keystore.p12 -srcstoretype PKCS12 -srcstorepass 123456
Entry for alias sert successfully imported.
Import command completed: 1 entries successfully imported, 0 entries failed or cancelled
Добавляем промежуточный сертификат:
# keytool -import -trustcacerts -alias intermediate -file /root/intermediate.ca -keystore keystore.kdb
# keytool -list -keystore keystore.kdb
Enter keystore password: 123456
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 2 entries
domain, Apr 1, 2016, PrivateKeyEntry,
Certificate fingerprint (SHA1): B6:4C:05:97:F2:2A:2C:2A:95:5E:7A:E4:E3:8D:9C:CC:10:7E:3C:B7
intermediate, Apr 1, 2016, trustedCertEntry,
Certificate fingerprint (SHA1): 73:6A:4D:C6:79:D6:82:DA:32:15:63:64:7C:60:F6:99:F0:DF:C2:68
В конфиге раскомментируем строку с AprLifecycleListener и коннектор для порта 8443:
# vim /etc/tomcat7/server.xml
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
...
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/etc/tomcat7/keystore.kdb"
keystorePass="123456"
keyAlias="sert" />
Проверка:
# service tomcat7 start
# lsof -i :8443
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 8348 tomcat7 45u IPv6 614620 0t0 TCP *:8443 (LISTEN)
Если нужно чтобы SSL работал на порту 443, то можно сделать перенаправление трафика вот так:
# iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp --dport 8443 -j ACCEPT
# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443
Но лучше на фронтенд поставить какой-нибудь nginx.
Спасибо!
ОтветитьУдалитьСпасибо огромное, красавчик!
ОтветитьУдалить