Liberty не доверяет чему-либо по ssl по умолчанию, поэтому, если служба, к которой вы подключаетесь, не использует идентичный файл хранилища ключей / доверенного хранилища, или если вы каким-то образом настроили свою службу на доверие микросервису, вы можете получить это исключение. Если проблема в этом, то в messages.log, вероятно, также будет отображаться что-то вроде этого:
com.ibm.ws.ssl.core.WSX509TrustManager E CWPKI0823E: ОТКАЗ HANDSHAKE SSL: подписавший с SubjectDN [CN = localhost, OU = oidcdemo_client, O = ibm, C = us] был отправлен с хоста [localhost: 19443]. Подписавшего, возможно, потребуется добавить в локальное хранилище доверенных сертификатов [/Users/tester/tmp/liberty/20003wlp/wlp/usr/servers/urlcheck/resources/security/key.p12], расположенное в псевдониме конфигурации SSL [defaultSSLConfig]. Расширенное сообщение об ошибке из исключения подтверждения SSL: [Ошибка построения пути PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации к запрошенной цели].
Как вручную исправить Здесь задокументировано хранилище доверенных сертификатов
https://www.ibm.com/support/knowledgecenter/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/twlp_add_trust_cert.html
, но то, что вы, вероятно, захотите сделать в среде docker, - это изменить свои изображения, чтобы включить общее хранилище ключей / truststore или прочтите его извне (например, секрет кубернетов). По умолчанию каждый образ docker создает свой собственный уникальный ключ / хранилище доверенных сертификатов, и они не смогут «общаться» по ssl.
Если вам нужно взаимодействовать только со службами, у которых есть сертификат, подписанный известным органом, вы можете добавить
ENV SEC_TLS_TRUSTDEFAULTCERTS = true
в свой Dockerfile (20,0003 +), чтобы включить это.