Ошибка рукопожатия SSL java.security.cert.CertPathValidatorException: ошибка цепочки сертификатов

Я создал образ Docker с помощью Open Liberty и своего пользовательского приложения, которое будет размещено в Azure в качестве службы веб-приложений. Все работает нормально, за исключением случаев, когда я пытаюсь получить доступ к другому контроллеру, размещенному в Azure (https://mycontrollerurl.azurewebsites.net/....). Я вижу ошибку из журналов: -

[ОШИБКА] CWPKI0022E: ОШИБКА ПОДТВЕРЖДЕНИЯ SSL: с целевого узла отправлена ​​подписывающая сторона с DN субъекта CN=*.azurewebsites.net. Подписавшего может потребоваться добавить в локальное хранилище доверенных сертификатов /opt/ol/wlp/output/defaultServer/resources/security/key.p12, расположенное в конфигурации SSL с псевдонимом defaultSSLConfig. Расширенное сообщение об ошибке из исключения рукопожатия SSL: Ошибка построения пути PKIX: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl не удалось создать действительный CertPath.; внутренняя причина: 2019-04-27T15:44:49.047295297Z java.security.cert.CertPathValidatorException: сертификат, выданный CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE, не является доверенным; внутренняя причина:

Может ли кто-нибудь помочь мне, как я могу создать файл SERVER.xml, чтобы включить сертификат и любые другие шаги, которые мне нужно выполнить? Мне всего 2 дня, как новичку в Liberty, и я пытаюсь решить проблему для моей команды разработчиков. Не могли бы вы сообщить мне, как я могу исправить эту проблему с CERT?

ОБНОВЛЕНИЕ: ПРОБЛЕМА РЕШЕНА (спасибо Брюсу за указание на меня): - 1. Мне пришлось загрузить сертификат azurewebsite (это очень просто сделать из браузера). Вы можете получить все шаги из статьи здесь. 2. Сохраните этот файл сертификата Azurewebsites в том же каталоге, что и мой файл DOCKERFILE. 3. Измените мой DOCKERFILE, чтобы он выглядел так: - ++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++ ОТ open-liberty: webProfile8 КОПИРОВАТЬ --chown=1001:0 server.xml /config/ КОПИРОВАТЬ --chown=1001:0 ancConnector-Liberty.war /config/dropins/ # Добавьте сертификат Azure, чтобы разрешить HTTPS-подключение. КОПИРОВАТЬ --chown=1001:0 azurewebsites.cer opt/ol/wlp/output/defaultServer/resources/security/ РАБОЧИЙ КАТАЛОГ /opt/ol/wlp/output/defaultServer/resources/security/ RUN keytool -noprompt -importcert -file azurewebsites.cer -alias azurewebsites -keystore key.jks -storepass Liberty -storetype jks` ++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++

Вот и все, СОЗДАЙТЕ образ, и мы готовы к работе! Теперь все работает! Надеюсь, это поможет кому-то в будущем.

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
1 148
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно добавить сертификат подписавшего из Azure в файл хранилища доверенных сертификатов Liberty, чтобы он «доверял» этому сайту. Процесс здесь:

https://www.ibm.com/support/knowledgecenter/SS7K4U_liberty/com.ibm.websphere.wlp.zseries.doc/ae/twlp_add_trust_cert.html

Ты Брюс, это выглядит многообещающе. У меня есть загруженный сертификат bt, так как я создаю образ докера открытой свободы. Я не уверен, как импортировать его в хранилище ключей, как указано в ошибке (Ошибка Подписавшая сторона с SubjectDN CN=*.azurewebsites.net была отправлена ​​с целевого хоста. Подписавшего может потребоваться добавить в локальное хранилище доверенных сертификатов /opt/ol/wlp/output/defaultServer/resources/security/key.p12, расположенное в конфигурации SSL с псевдонимом defaultSSLConfig.). Я думаю, что файл докера нужно изменить, но я не уверен, как он будет выглядеть. Любая помощь?

user42012 27.04.2019 21:40

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

Bruce T. 27.04.2019 22:43

Спасибо, Брюс, моя проблема решена. Все, что мне нужно было сделать, это загрузить azurewebsites (сертификат), а затем изменить мой DOCKERFILE, который теперь выглядит следующим образом:

user42012 28.04.2019 00:02

MYDOCKERFILE :---> FROM open-liberty:webProfile8 COPY --chown=1001:0 server.xml /config/ COPY --chown=1001:0 ancConnector-Liberty.war /config/dropins/ # Добавьте сертификат Azure в включить HTTPS-соединение. КОПИРОВАТЬ --chown=1001:0 azurewebsites.cer /opt/ol/wlp/output/defaultServer/resources/security/ WORKDIR /opt/ol/wlp/output/defaultServer/resources/security/ RUN keytool -noprompt -importcert -file azurewebsites.cer -псевдоним azurewebsites -keystore key.jks -storepass Liberty -storetype jks

user42012 28.04.2019 00:02

Другие вопросы по теме