У меня возникают проблемы с пониманием того, почему Weblogic / Java не отправляют сертификат клиента, запрошенный сервером (сервером IIS) во время SSL-квитирования через сообщение CertificateRequest.
Я уже проверил и попробовал все остальные вопросы / ответы в SO, такие как:
Java не предоставляет клиентский сертификат для взаимного SSL?
и аналогичные.
Я создал собственное хранилище ключей под названием Identity.jks только с одной записью сертификата, и я следовал инструкциям WL (и всему остальному, что я мог найти в Интернете), чтобы выполнить правильные настройки.
Вот журналы отладки для рукопожатия SSL:
*** CertificateRequest
Cert Types: RSA, DSS, ECDSA
Supported Signature Algorithms: SHA512withRSA, SHA512withECDSA, SHA256withRSA, SHA384withRSA, SHA1withRSA, SHA256withECDSA, SHA384withECDSA, SHA1withECDSA, SHA1withDSA
Cert Authorities:
<Empty>
*** ServerHelloDone
Warning: no suitable certificate found - continuing without client authentication
*** Certificate chain
<Empty>
Как видите, сервер отправляет сообщение CertificateRequest
, но по некоторым причинам Cert Authorities
равно Empty
. Клиент (Weblogic) в этом случае не отправляет сертификат. Как видите, разработчики предупреждают:
no suitable certificate found - continuing without client authentication
Когда я использую SoapUI
вместо Weblogic для связи с сервером, рукопожатие проходит успешно. SoapUI отправляет сертификат, содержащийся в хранилище ключей Identity.jks
.
Может ли быть так, что SoapUI
менее ограничен и все равно отправляет единственный сертификат, присутствующий в хранилище ключей, пока Weblogic ожидает от сервера найти что-то в Cert Authorities:
<Empty>
?
Поскольку я настроил weblogic для использования только этого ключа с таким псевдонимом, я ожидаю, что он отправит его ...
Кто-нибудь знает, по каким критериям Weblogic находит соответствующий сертификат клиента?
Правильна ли моя интерпретация журналов?
Любая идея / помощь приветствуется.