无法解决 PKIX 路径构建失败
Unable to Resolve PKIX Path Building Failed
我尝试使用以下代码连接到 https 网络服务。
adapter.xml:
<connectivity>
<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
<protocol>https</protocol>
<domain>somewhere.com</domain>
<port>443</port>
<connectionTimeoutInMilliseconds>30000</connectionTimeoutInMilliseconds>
<socketTimeoutInMilliseconds>30000</socketTimeoutInMilliseconds>
<maxConcurrentConnectionsPerNode>50</maxConcurrentConnectionsPerNode>
</connectionPolicy>
</connectivity>
impl.js:
function getTest() {
var input = {
method : 'GET',
returnedContentType : 'json',
path : "WS.svc"
};
return WL.Server.invokeHttp(input);
}
不幸的是,当我尝试调用适配器时出现此错误:
{
"errors": [
"Runtime: Http request failed: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"
],
"info": [
],
"isSuccessful": false,
"warnings": [
]
}
我已将 WS 的 public 证书(从浏览器访问并从证书详细信息中获取)添加到程序文件 (C:\Program Files\Java\jdk_version\jre\lib\security
) 中的 Java 文件夹中,但是问题仍然存在。
有什么建议吗?
您在使用 MobileFirst Platform 时遵循的说明不正确。
按照 this user documentation topic(适用于 Worklight 6.2,但也适用于 MPFF 6.3 及更高版本)中描述的步骤进行操作。
- 不要从浏览器导出证书,因为此操作会添加浏览器元数据和其他不应存在的工件。而是使用 OpenSSL 等工具来获取证书(在文档中有描述)
- 然后证书应该存储在应用程序服务器的密钥库中,而不是在您的 Java 的 JVM 中。
我尝试使用以下代码连接到 https 网络服务。
adapter.xml:
<connectivity>
<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
<protocol>https</protocol>
<domain>somewhere.com</domain>
<port>443</port>
<connectionTimeoutInMilliseconds>30000</connectionTimeoutInMilliseconds>
<socketTimeoutInMilliseconds>30000</socketTimeoutInMilliseconds>
<maxConcurrentConnectionsPerNode>50</maxConcurrentConnectionsPerNode>
</connectionPolicy>
</connectivity>
impl.js:
function getTest() {
var input = {
method : 'GET',
returnedContentType : 'json',
path : "WS.svc"
};
return WL.Server.invokeHttp(input);
}
不幸的是,当我尝试调用适配器时出现此错误:
{
"errors": [
"Runtime: Http request failed: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"
],
"info": [
],
"isSuccessful": false,
"warnings": [
]
}
我已将 WS 的 public 证书(从浏览器访问并从证书详细信息中获取)添加到程序文件 (C:\Program Files\Java\jdk_version\jre\lib\security
) 中的 Java 文件夹中,但是问题仍然存在。
有什么建议吗?
您在使用 MobileFirst Platform 时遵循的说明不正确。
按照 this user documentation topic(适用于 Worklight 6.2,但也适用于 MPFF 6.3 及更高版本)中描述的步骤进行操作。
- 不要从浏览器导出证书,因为此操作会添加浏览器元数据和其他不应存在的工件。而是使用 OpenSSL 等工具来获取证书(在文档中有描述)
- 然后证书应该存储在应用程序服务器的密钥库中,而不是在您的 Java 的 JVM 中。