Как установить SSL-сертификаты GoDaddy в Tomcat без CSR? - PullRequest
0 голосов
/ 23 ноября 2018

Один из наших клиентов приобрел у GoDaddy SSL-сертификаты с подстановочными знаками (* .example.com), и он просто загрузил их без предоставления данных CSR.У нас есть 3 файла в этом zip-файле.Это fce4f111a61ea3f4.crt, gd_bundle-g2-g1.crt и gdig2.crt.pem.

Я искал так много статей по этому поводу, но все говорят, что сначала возьмите данные CSR с вашего сервера и передайте их в GoDaddy для получения SSL-сертификатов.

В моем случае мы не предоставляли данные CSR в GoDaddy, что означает, что у меня нет файла хранилища ключей.

Теперь я попытался установить сертификаты без хранилища ключей на свой сервер.Для этого я использовал следующие команды безуспешно:

keytool -import -alias root -keystore tomcat.keystore -trustcacerts -file fce4f111a61ea3f4.crt

keytool -import -alias interm -keystore tomcat.keystore -trustcacerts -file gd_bundle-g2-g1.crt

keytool -import -alias tomcat -keystore tomcat.keystore -trustcacerts -file gdig2.crt.pem

1 Ответ

0 голосов
/ 05 марта 2019

Я предполагаю, что у вас уже есть хранилище ключей в соответствии с вашими заявлениями выше.Сначала сделайте резервную копию вашего хранилища ключей, чтобы избежать ошибок.

Помимо файлов, у вас также должен быть Личный ключ вашего сгенерированного сертификата.

Теперь следуйте инструкциям в порядке.

  1. Сначала удалите все существующие записи из файла хранилища ключей.
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 на ваш фактический файл хранилища ключей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...