IBM MobileFirst 适配器调用 ssl 错误
IBM MobileFirst adapter call ssl error
我正在尝试通过 IBM mobilefirst 的 http 适配器从应用程序获取 json 数据。
可以使用 https 访问该应用程序,但我收到此 ssl 错误:
"Runtime: Http request failed: javax.net.ssl.SSLHandshakeException:
java.security.cert.CertificateExpiredException: NotAfter: Sat Jul 26
21:15:15 EEST 2014"
这是适配器的xml:
<wl:adapter name="test2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wl="http://www.ibm.com/mfp/integration"
xmlns:http="http://www.ibm.com/mfp/integration/http">
<displayName>test2</displayName>
<description>test2</description>
<connectivity>
<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
<protocol>https</protocol>
<domain>www.mydomain-company.gr</domain>
<port>443</port>
<connectionTimeoutInMilliseconds>30000</connectionTimeoutInMilliseconds>
<socketTimeoutInMilliseconds>30000</socketTimeoutInMilliseconds>
<maxConcurrentConnectionsPerNode>50</maxConcurrentConnectionsPerNode>
<!-- Following properties used by adapter's key manager for choosing specific certificate from key store
<sslCertificateAlias></sslCertificateAlias>
<sslCertificatePassword></sslCertificatePassword>
-->
</connectionPolicy>
</connectivity>
<procedure name="getDDD"/>
</wl:adapter>
这是 js:
function getDDD() {
var identity = Base64.encode("myuser:mypass"); //i have a base64 function above that i have not pasted here. It works it is tested in other apps.
var path = "/part1/part2/ddd.nsf/rest.xsp/ddd";
var input = {
method : 'get',
returnedContentType : 'json',
path : path,
headers: {Authorization: "Basic "+identity}
};
return WL.Server.invokeHttp(input);
}
如果我从我的浏览器调用相同的 url,我会获取数据并检查 https 信息,我会看到证书在 2016 年到期。
我还使用 java keytool 检查了路径中移动优先服务器的 jks 文件中证书的到期日期:
C:\path1\path2\MobileFirstServerConfig\servers\worklight\resources\security\key.jks
并且没有过期
是移动优先服务器的问题还是目标服务器证书的问题?
到目前为止我配置 ssl 的步骤:
1) 去了 /MobileFirstServerConfig\servers\worklight\resources\security
并使用 java keytool 创建了一个带有新证书的新 key.jks。我将证书命名为默认值,就像它在旧 key.jks 文件中的名称一样。
2) 从这个 jks
中导出了证书
3) 将证书导入 server/conf 文件夹
下项目中的 default.keystore 文件
4) worklight.properties 文件:
MobileFirst SSL keystore
#
SSL certificate keystore location. ssl.keystore.path=conf/default.keystore
SSL certificate keystore type (jks or PKCS12) ssl.keystore.type=jks
SSL certificate keystore password. ssl.keystore.password=worklight
5) server.xml 文件:
<keyStore id="defaultKeyStore" password="worklight"/>
我也尝试过将 "default" 作为 id。
您没有在适配器和后端之间配置 SSL。
您应该查看的密钥库在项目的 worklight.properties 文件中定义(默认位置如下:workspace\CustomLoginModule\server\conf)。
我正在尝试通过 IBM mobilefirst 的 http 适配器从应用程序获取 json 数据。
可以使用 https 访问该应用程序,但我收到此 ssl 错误:
"Runtime: Http request failed: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateExpiredException: NotAfter: Sat Jul 26 21:15:15 EEST 2014"
这是适配器的xml:
<wl:adapter name="test2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wl="http://www.ibm.com/mfp/integration"
xmlns:http="http://www.ibm.com/mfp/integration/http">
<displayName>test2</displayName>
<description>test2</description>
<connectivity>
<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
<protocol>https</protocol>
<domain>www.mydomain-company.gr</domain>
<port>443</port>
<connectionTimeoutInMilliseconds>30000</connectionTimeoutInMilliseconds>
<socketTimeoutInMilliseconds>30000</socketTimeoutInMilliseconds>
<maxConcurrentConnectionsPerNode>50</maxConcurrentConnectionsPerNode>
<!-- Following properties used by adapter's key manager for choosing specific certificate from key store
<sslCertificateAlias></sslCertificateAlias>
<sslCertificatePassword></sslCertificatePassword>
-->
</connectionPolicy>
</connectivity>
<procedure name="getDDD"/>
</wl:adapter>
这是 js:
function getDDD() {
var identity = Base64.encode("myuser:mypass"); //i have a base64 function above that i have not pasted here. It works it is tested in other apps.
var path = "/part1/part2/ddd.nsf/rest.xsp/ddd";
var input = {
method : 'get',
returnedContentType : 'json',
path : path,
headers: {Authorization: "Basic "+identity}
};
return WL.Server.invokeHttp(input);
}
如果我从我的浏览器调用相同的 url,我会获取数据并检查 https 信息,我会看到证书在 2016 年到期。
我还使用 java keytool 检查了路径中移动优先服务器的 jks 文件中证书的到期日期:
C:\path1\path2\MobileFirstServerConfig\servers\worklight\resources\security\key.jks
并且没有过期
是移动优先服务器的问题还是目标服务器证书的问题?
到目前为止我配置 ssl 的步骤: 1) 去了 /MobileFirstServerConfig\servers\worklight\resources\security 并使用 java keytool 创建了一个带有新证书的新 key.jks。我将证书命名为默认值,就像它在旧 key.jks 文件中的名称一样。
2) 从这个 jks
中导出了证书3) 将证书导入 server/conf 文件夹
下项目中的 default.keystore 文件4) worklight.properties 文件:
MobileFirst SSL keystore
#SSL certificate keystore location. ssl.keystore.path=conf/default.keystore
SSL certificate keystore type (jks or PKCS12) ssl.keystore.type=jks
SSL certificate keystore password. ssl.keystore.password=worklight
5) server.xml 文件:
<keyStore id="defaultKeyStore" password="worklight"/>
我也尝试过将 "default" 作为 id。
您没有在适配器和后端之间配置 SSL。
您应该查看的密钥库在项目的 worklight.properties 文件中定义(默认位置如下:workspace\CustomLoginModule\server\conf)。