在 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 中导入合作伙伴的密钥和证书:
导入合作伙伴密钥和证书的步骤:
合作伙伴向我们提供了pfx文件,其中包含私钥和
证书。
- 从合作伙伴提供的 PFX 导出密钥:
openssl pkcs12 -in LuisEmail.pfx -nocerts -out LuisEmail.key –nodes
- 从 LUIS 提供的 PFX 导出证书:openssl pkcs12 -in LuisEmail.pfx -nokeys -out LuisEmail.cer –nodes
- 将LuisEmail.cer复制到windows并通过手动导出创建root.cer和inter.cer。
- 通过按顺序组合所有 3 个证书来创建链:中间根服务器并将其保存为 .pem 文件。
- 将 pem 文件带到 linux 机器上。
- 设置环境以执行 java util.importPrivateKey 实用程序。 /apps/oracle/product/fmw/wlserver_10.3/server/bin/setWLSEnv.sh
- 将私钥文件转换为rsa私钥文件:openssl rsa -in LuisEmail.key -out LuisEmail_RSA.key
- 在身份存储中导入 pem/key:java utils.ImportPrivateKey -keystore netappidentity_STA.jks -storepass -storetype JKS -keypass
-别名 staPrivateKey -certfile
LuisEmailChain.pem -keyfile LuisEmail_RSA.key -keyfilepass
- 在信任库中导入根 CER 文件:keytool -import -v -noprompt -trustcacerts -alias starootcert -file LuisEmailRoot.cer -keystore netapptrust_STA.jks -storepass
- 重新启动服务器
任何关于我们在这里遗漏的指示都将不胜感激!请注意,当我们使用 keytool explorer 检查 pfx 文件时,我们只会看到私钥和服务器(域)证书。没有中间证书和根证书。
还有人知道为什么合作伙伴会给我们密钥对,以及它是单向 ssl 还是双向 ssl。我们的印象是只有 public 证书被交换用于 ssl 通信。
谢谢。
我们能够在这里找出问题所在。由于我们的合作伙伴是政府税务机构(我想他们不想信任我们的 CA),他们为我们提供了一对密钥(有私钥)。我们应该将它用作我们自己的密钥。
我们在我们的身份存储中导入了私钥,并在信任存储中从他们的 URL 中导出了证书,并且连接工作正常。
谢谢
我们需要通过 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 中导入合作伙伴的密钥和证书:
导入合作伙伴密钥和证书的步骤:
合作伙伴向我们提供了pfx文件,其中包含私钥和 证书。
- 从合作伙伴提供的 PFX 导出密钥:
openssl pkcs12 -in LuisEmail.pfx -nocerts -out LuisEmail.key –nodes
- 从 LUIS 提供的 PFX 导出证书:openssl pkcs12 -in LuisEmail.pfx -nokeys -out LuisEmail.cer –nodes
- 将LuisEmail.cer复制到windows并通过手动导出创建root.cer和inter.cer。
- 通过按顺序组合所有 3 个证书来创建链:中间根服务器并将其保存为 .pem 文件。
- 将 pem 文件带到 linux 机器上。
- 设置环境以执行 java util.importPrivateKey 实用程序。 /apps/oracle/product/fmw/wlserver_10.3/server/bin/setWLSEnv.sh
- 将私钥文件转换为rsa私钥文件:openssl rsa -in LuisEmail.key -out LuisEmail_RSA.key
- 在身份存储中导入 pem/key:java utils.ImportPrivateKey -keystore netappidentity_STA.jks -storepass -storetype JKS -keypass -别名 staPrivateKey -certfile LuisEmailChain.pem -keyfile LuisEmail_RSA.key -keyfilepass
- 在信任库中导入根 CER 文件:keytool -import -v -noprompt -trustcacerts -alias starootcert -file LuisEmailRoot.cer -keystore netapptrust_STA.jks -storepass
- 重新启动服务器
任何关于我们在这里遗漏的指示都将不胜感激!请注意,当我们使用 keytool explorer 检查 pfx 文件时,我们只会看到私钥和服务器(域)证书。没有中间证书和根证书。
还有人知道为什么合作伙伴会给我们密钥对,以及它是单向 ssl 还是双向 ssl。我们的印象是只有 public 证书被交换用于 ssl 通信。
谢谢。
我们能够在这里找出问题所在。由于我们的合作伙伴是政府税务机构(我想他们不想信任我们的 CA),他们为我们提供了一对密钥(有私钥)。我们应该将它用作我们自己的密钥。
我们在我们的身份存储中导入了私钥,并在信任存储中从他们的 URL 中导出了证书,并且连接工作正常。
谢谢