Не удается настроить SSL с помощью Glassfish

Я пытаюсь установить SSL-сертификат в Glassfish 4.1.1.

Я сделал следующее:

keytool -importkeystore -srckeystore /home/user/domain.com.jks -destkeystore /opt/glassfish4/glassfish/domains/domain1/config/keystore.jks

keytool -import -trustcacerts -keystore keystore.jks -alias root -file root.crt
keytool -import -trustcacerts -keystore keystore.jks -alias intermediate1 -file 1_cross_Intermediate.crt
keytool -import -trustcacerts -keystore keystore.jks -alias intermediate2 -file 2_issuer_Intermediate.crt
keytool -import -trustcacerts -keystore keystore.jks -alias domain_com -file 3_user_domain.com.crt

Затем я переименовал SSL-ссылку для http-listener-2 с «s1as» на «domain_com» в конфигурации сервера с помощью консоли администрирования.

И перезапустил домен через Консоль администрирования и кнопку "перезагрузить".

После этого я не могу получить доступ к своему приложению по адресу https://domain.com:8181. Ошибка:

ERR_CONNECTION_RESET

И даже не может получить доступ к Консоли администрирования по адресу https://domain.com:4848 с

ERR_CONNECTION_CLOSED

Где я могу посмотреть, что происходит и как правильно настроить SSL.

Еще одно замечание: пароли для хранилища ключей и мастер-пароль для Glassfish являются паролями по умолчанию (changeit) и совпадают. Я проверил.

Можете подсказать, где искать?

Заранее спасибо!

ОБНОВЛЕНИЕ: в журналах Glassfish у меня есть следующие исключения:

[2016-08-17T10:29:53.142+0000] [glassfish 4.1] [WARNING] [] [javax.enterprise.network.config] [tid: _ThreadID=43 _T$
  GRIZZLY0050: SSL support could not be configured!
java.io.IOException: A MultiException has 2 exceptions.  They are:
1. java.lang.Error: java.security.UnrecoverableKeyException: Cannot recover key
2. java.lang.IllegalStateException: Unable to perform operation: post construct on com.sun.enterprise.security.ssl.$

        at org.glassfish.grizzly.config.ssl.JSSE14SocketFactory.init(JSSE14SocketFactory.java:162)
        at org.glassfish.grizzly.config.SSLConfigurator.initializeSSLContext(SSLConfigurator.java:249)
        at org.glassfish.grizzly.config.SSLConfigurator.configureSSL(SSLConfigurator.java:131)
        at org.glassfish.grizzly.config.SSLConfigurator$InternalSSLContextConfigurator.createSSLContext(SSLConfigur$
        at org.glassfish.grizzly.ssl.SSLEngineConfigurator.createSSLEngine(SSLEngineConfigurator.java:209)
        at org.glassfish.grizzly.ssl.SSLEngineConfigurator.createSSLEngine(SSLEngineConfigurator.java:186)
        at org.glassfish.grizzly.ssl.SSLBaseFilter.handleRead(SSLBaseFilter.java:293)

[2016-08-17T10:29:53.143+0000] [glassfish 4.1] [WARNING] [] [org.glassfish.grizzly.filterchain.DefaultFilterChain] $
  GRIZZLY0013: Exception during FilterChain execution
java.lang.NullPointerException
        at org.glassfish.grizzly.ssl.SSLEngineConfigurator.createSSLEngine(SSLEngineConfigurator.java:214)
        at org.glassfish.grizzly.ssl.SSLEngineConfigurator.createSSLEngine(SSLEngineConfigurator.java:186)
        at org.glassfish.grizzly.ssl.SSLBaseFilter.handleRead(SSLBaseFilter.java:293)
        at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
        at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)

person Luxor    schedule 17.08.2016    source источник


Ответы (2)


Вы забыли вставить свои сертификаты в cacerts.jks
Включить корневые и промежуточные сертификаты в cacerts, подобные этому
keytool -import -trustcacerts -keystore cacerts.jks -alias root -file root.crt
keytool -import - trustcacerts -keystore cacerts.jks -псевдоним промежуточный1 -файл 1_cross_Intermediate.crt
keytool -import -trustcacerts -keystore cacerts.jks -псевдоним промежуточный2 -файл 2_issuer_Intermediate.crt

Сертификат домена не нужно вставлять в cacerts.jks

person udaysharma    schedule 25.08.2016
comment
ПРИМЕЧАНИЕ. Мастер-пароль Glassfish, пароль хранилища ключей и сертификата домена должны совпадать. - person udaysharma; 25.08.2016

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

  • Вы уверены, что хранилище ключей и запись сертификата имеют пароль «changeit»?

  • Подходит ли цепочка сертификатов для этой записи сертификата?

person Marcos Zolnowski    schedule 17.08.2016
comment
Благодарю за ваш ответ! Решил проблему с помощью сертификатов letsencrypt. Да, оба пароля были «changeit», и мне не удалось справиться с этой проблемой. - person Luxor; 17.08.2016