Я предполагаю, что у вас уже есть хранилище ключей в соответствии с вашими заявлениями выше.Сначала сделайте резервную копию вашего хранилища ключей, чтобы избежать ошибок.
Помимо файлов, у вас также должен быть Личный ключ вашего сгенерированного сертификата.
Теперь следуйте инструкциям в порядке.
- Сначала удалите все существующие записи из файла хранилища ключей.
keytool -delete -alias tomcat -keystore domain.jks
Вы также можете просмотреть любые другие существующие записи с помощью keytool -list -keystore domain.jks
также удалите их.
Теперь экспортируйте сертификат и закрытый ключ в файл PKCS12
openssl pkcs12 -export -in fce4f111a61ea3f4.crt -inkey private.key -out cert_and_key.p12 -name tomcat -CAfile gd_bundle-g2-g1.crt -caname root
Если вы получили сообщение об ошибке, аналогичной следующей
unable to load private key
139995851216720:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:707:Expecting: ANY PRIVATE KEY
Это означает, что ваш private.key
не в нужном формате, вам нужно изменить кодировку на ASCII text
, запустите следующую команду, чтобы преобразовать ваш закрытый ключ
# You can do a dry run before manipulating the actual file
tail -c +4 private.key | file -
# Change encoding
tail -c +4 private.key > private.key
Импорт файла PKCS12 в хранилище ключей JKS:
keytool -importkeystore -srckeystore cert_and_key.p12 -srcstoretype PKCS12 -alias tomcat -keystore domain.jks
Теперь импортируйте корневой сертификат в хранилище ключей JKS
(с псевдонимом root) keytool -import -trustcacerts -alias root -file $certdir/gd_bundle-g2-g1.crt -noprompt -keystore domain.jks
Добавьте следующее в
server.xml
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150"
SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
keystoreFile="/path/to/keysore/domain.jks" keystorePass="xxxxxx"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA, SSL_RSA_WITH_RC4_128_SHA" />
Не забудьте заменить xxxxxx
на ваш пароль хранилища ключей JKS и keystoreFile
параметр
Готово.Теперь перезапустите ваш
сервер Tomcat и прослушайте ваш файл журнала
sudo service tomcat7 restart
sudo tail -f /var/log/tomcat7/catalina.out
Примечание: замените domain.jks
на ваш фактический файл хранилища ключей.