Ошибка рукопожатия SSL java.security.cert.CertPathValidatorException: ошибка цепочки сертификата - PullRequest
0 голосов
/ 27 апреля 2019

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

[ОШИБКА] CWPKI0022E: СБОЙ SSL HANDSHAKE: Подписчик с SubjectDN 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 = Балтимор, C = IE не является доверенным; Внутренняя причина:

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

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

Вот и все, создайте образ, и мы готовы к работе! Все работает сейчас! Надеюсь, это поможет кому-то в будущем.

1 Ответ

1 голос
/ 27 апреля 2019

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

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

...