WebLogic 10.3.4 импорт подстановочных сертификатов

#java #ssl #ssl-certificate #weblogic #spring-webclient

Вопрос:

У меня есть локальная среда с развернутым на ней приложением WebLogic 10.3.4 и .ear. Это приложение должно взаимодействовать с внешними службами через API REST. Эти внешние службы доступны по протоколу https и используют подстановочные сертификаты.

При попытке подключиться к одной из этих служб я получаю следующие исключения.

 org.springframework.web.client.ResourceAccessException: I/O error on POST request for "https://dds-service.domain.com" General SSLEngine problem; nested exception is javax.net.ssl.SSLHandshakeException: General SSLEngine problem [...]
[...] Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target [...]
[...] Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
 

Итак, в первом случае я попытался открыть тот же URL-адрес, к которому приложение пытается подключиться в моем браузере, загрузить его сертификат с подстановочными знаками (в кодировке.cer Base64) и с помощью ключевого инструмента импортировать его в хранилище доверия jvm, которое загружает WebLogic и просматривает при попытке проверки сертификата. Я уверен, что это правильный вариант, потому что я импортировал другие сертификаты, которые вызвали ту же ошибку, а также из-за этого журнала

 <Loading trusted certificates from the jks keystore file C:WEBLOG~1wlsJROCKI~1.1-3jrelibsecuritycacerts.> 
 

На данный момент я полагаю, что проблема связана с тем, как я импортирую сертификат с подстановочными знаками в WebLogic. Я пытался найти различные способы сделать это, но, как и в этом случае, требуется файл .pfx, который в данный момент мне недоступен.

Нужен ли мне .pfx для решения этой проблемы или есть другой способ?

Ответ №1:

Если у кого-то когда-нибудь возникнет такая же проблема, вот решение, которое я нашел: похоже, что WLS 10.3.x имеет проблемы с доверием к сертификатам с ключами длиной более 128 бит, это и вызвало проблему в первую очередь. Тем не менее, 2 действия решили мою проблему

  1. -DUseSunHttpHandler=true добавлено в качестве аргумента виртуальной машины в сценарии setDomainEnv
  2. Включите SSL JSSE через консоль администратора WLS (Среда > Серверы >> имя сервера >>> Конфигурация > > > > SSL > > > > > > Дополнительно > > > > > > > > установите флажок SSL JSSE)
  3. Нажмите кнопку Сохранить и перезапустите сервер WLS.