在 weblogic 中为出站 https 连接安装合作伙伴的密钥+证书 (PFX)

Installing Partner's Key+Certificate (PFX) in weblogic for outbound https connection

我们需要通过 HTTPS 与来自 SOA 的外部合作伙伴集成。因为这个合作伙伴向我们提供了他们的密钥对(以 pfx 文件的形式)。 当我们在 SOAP UI 中导入 pfx 文件并尝试与合作伙伴 URL 连接时,它工作得非常好。

但是当我们在 weblogic 中导入合作伙伴的密钥和证书时(我们使用身份和信任 jks),我们得到以下错误:

错误:

summary=oracle.fabric.common.FabricInvocationException:无法成功调用端点 URI“https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP”,原因如下:javax.xml.soap.SOAPException:javax.xml.soap.SOAPException:消息发送失败:sun.security.validator.ValidatorException :PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效证书路径 ,detail=无法成功调用端点 URI“https://www7.aeat.es/wlpl/SSII-FACT/ws/fe/SiiFactFEV1SOAP”,原因是:javax.xml.soap.SOAPException:javax.xml.soap.SOAPException:消息发送失败:sun.security.validator.ValidatorException:PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径

,代码=null}

我们已按照以下步骤在 weblogic 中导入合作伙伴的密钥和证书:

导入合作伙伴密钥和证书的步骤:

  1. 合作伙伴向我们提供了pfx文件,其中包含私钥和 证书。

    1. 从合作伙伴提供的 PFX 导出密钥:

    openssl pkcs12 -in LuisEmail.pfx -nocerts -out LuisEmail.key –nodes

    1. 从 LUIS 提供的 PFX 导出证书:openssl pkcs12 -in LuisEmail.pfx -nokeys -out LuisEmail.cer –nodes
    2. 将LuisEmail.cer复制到windows并通过手动导出创建root.cer和inter.cer。
    3. 通过按顺序组合所有 3 个证书来创建链:中间根服务器并将其保存为 .pem 文件。
    4. 将 pem 文件带到 linux 机器上。
    5. 设置环境以执行 java util.importPrivateKey 实用程序。 /apps/oracle/product/fmw/wlserver_10.3/server/bin/setWLSEnv.sh
    6. 将私钥文件转换为rsa私钥文件:openssl rsa -in LuisEmail.key -out LuisEmail_RSA.key
    7. 在身份存储中导入 pem/key:java utils.ImportPrivateKey -keystore netappidentity_STA.jks -storepass -storetype JKS -keypass -别名 staPrivateKey -certfile LuisEmailChain.pem -keyfile LuisEmail_RSA.key -keyfilepass
    8. 在信任库中导入根 CER 文件:keytool -import -v -noprompt -trustcacerts -alias starootcert -file LuisEmailRoot.cer -keystore netapptrust_STA.jks -storepass
    9. 重新启动服务器

任何关于我们在这里遗漏的指示都将不胜感激!请注意,当我们使用 keytool explorer 检查 pfx 文件时,我们只会看到私钥和服务器(域)证书。没有中间证书和根证书。

还有人知道为什么合作伙伴会给我们密钥对,以及它是单向 ssl 还是双向 ssl。我们的印象是只有 public 证书被交换用于 ssl 通信。

谢谢。

我们能够在这里找出问题所在。由于我们的合作伙伴是政府税务机构(我想他们不想信任我们的 CA),他们为我们提供了一对密钥(有私钥)。我们应该将它用作我们自己的密钥。

我们在我们的身份存储中导入了私钥,并在信任存储中从他们的 URL 中导出了证书,并且连接工作正常。

谢谢