Назад | Перейти на главную страницу

Проблема конфигурации SSL

Я создал сертификат SSL с помощью keytool:

keytool -keystore keystore -alias mySite -genkey -keyalg RSA -keysize 2048

У меня это настроено и работает нормально, но, очевидно, оно не было подписано доверенным центром сертификации, поэтому я создал CSR:

keytool -certreq -alias mySite -keystore keystore -file mySite.csr

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

keytool -keystore keystore -import -alias mySite.com -file mySite.com.crt
keytool -keystore keystore -import -alias gd_bundle -file gd_bundle.crt

Я думал, что этого будет достаточно, но я все еще получаю предупреждение о ненадежном сертификате, когда открываю свое приложение через браузер. Я пропустил шаг? Мое приложение работает на Jetty, и единственная конфигурация, которую я предоставил, - это хранилище ключей и ключ-пароль.

Я получаю следующее исключение:

javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate

Поработав с этим пару часов, я смог найти решение. В итоге я использовал openssl вместо того keytool:

openssl genrsa -des3 -out mysite.key 2048
openssl req -new -key mysite.key -out mysite.csr

Отправьте CSR, и как только вы получите сертификат:

openssl pkcs12 -export -chain -CAfile gd_bundle.crt -in mysite.com.crt -inkey mysite.key -out mysite.pkcs12
java -classpath jetty-util-6.1.26.jar:jetty-6.1.26.jar org.mortbay.jetty.security.PKCS12Import mysite.pkcs12 keystore

Надеюсь, другие сочтут это полезным!