0

再会,

我的 Web 应用程序需要连接到 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应该工作。

任何人都可以就此提出建议吗?

4

1 回答 1

0

只是简单地解释几个概念:

  • CellDefaultTrustStore - 为您连接到的服务器存储signer证书,以使其受信任。默认情况下由所有节点和服务器共享
  • NodeDefaultKeyStore - 存储private证书,因此用于客户端身份验证的证书。默认情况下,每个节点都有自己的存储和私有证书来进行身份验证。
  • CellDefaultKeyStore - 存储private与单元关联的证书。由部署管理器使用,而不是为应用程序服务的节点。它不被联合节点使用。
  • NodeDefaultSSLSettings - 这管理给定节点的 SSL 配置,您可以检查它。默认情况下,它使用 NodeDefaultKeyStore(不是 CellDefaultKeyStore)和 CellDefaultTrustStore

但回到你的问题。如果您需要使用客户端证书身份验证连接到某些服务,您应该做的是:

  • 使用 p12 文件中的证书创建新的密钥库
  • 使用连接到该服务所需的所有签名者证书创建新的信任库
  • 创建指向这些存储的新 SSL 配置
  • 创建动态出站端点 SSL 配置设置,指向您的 ssl 配置,选择正确的客户端证书,并以协议、主机、端口形式指定连接信息

当您进行与您输入的信息匹配的出站 ssl 连接时,将采用此配置。

于 2019-05-02T13:13:45.800 回答