p12 работает в NodeDefaultKeyStore, но не работает в CellDefaultKeyStore в WebSphere - PullRequest
0 голосов
/ 29 апреля 2019

Добрый день,

Мое веб-приложение должно подключиться к третьей стороне IBM, чтобы получить ответ. Таким образом, IBM дает мне файл .p12, который содержит сертификат клиента.

Сначала я импортирую этот .p12 файл в свой существующий CellDefaultKeyStore, и он столкнется с ошибкой цепочки сертификатов.

com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
    java.security.cert.CertPathValidatorException: The certificate issued by xxx is not trusted; internal cause is: 
    java.security.cert.CertPathValidatorException: Certificate chaining error

Затем я импортирую этот .p12 файл в NodeDefaultKeyStore, и, что удивительно, его работа. Мое приложение способно позвонить третьему лицу и получить код ответа 200.

Я не понимаю, как объяснить этому моему клиенту.

Как я понимаю, область управления в CellDefaultKeyStore больше, потому что она в ячейке, NodeDefaultKeyStore должна учитывать только часть ячейки, предположим, что CellDefaultKeyStore должен работать.

Кто-нибудь может посоветовать это?

1 Ответ

0 голосов
/ 02 мая 2019

Просто кратко объясню несколько понятий:

  • CellDefaultTrustStore - это хранилище для signer сертификатов, для серверов, к которым вы подключаетесь, для доверия. По умолчанию он используется всеми узлами и серверами
  • NodeDefaultKeyStore - это хранилище для private сертификатов, то есть сертификатов, которые используются для аутентификации клиента. Каждый узел по умолчанию имеет свое собственное хранилище и закрытый сертификат для аутентификации.
  • CellDefaultKeyStore - это хранилище для private сертификатов, связанных с ячейкой. Используется администратором развертывания, а не узлами, обслуживающими приложения. Он НЕ используется федеративными узлами.
  • NodeDefaultSSLSettings - это управление конфигурацией SSL для данного узла, вы можете проверить это. По умолчанию он использует NodeDefaultKeyStore (не CellDefaultKeyStore) и CellDefaultTrustStore

Но вернемся к вашему вопросу. Если вам нужно подключиться к какой-либо службе с использованием аутентификации по сертификату клиента, вам нужно сделать следующее:

  • создать новое хранилище ключей с сертификатом из файла p12
  • создать новое хранилище доверенных сертификатов со всеми сертификатами подписавшего, необходимыми для подключения к этой службе
  • создать новый SSL Config, который будет указывать на эти магазины
  • создать настройки конфигурации SSL динамической исходящей конечной точки, указывая на конфигурацию ssl, выбрать правильный сертификат клиента и указать информацию о соединении в протоколе формы, хосте, порту

Эта конфигурация будет выбрана, когда вы будете выполнять исходящее ssl-соединение, которое соответствует введенной вами информации.

...