【问题标题】:IBM MobileFirst adapter call ssl errorIBM MobileFirst 适配器调用 ssl 错误
【发布时间】:2015-07-24 11:19:30
【问题描述】:

我正在尝试通过 IBM mobilefirst 的 http 适配器从应用程序获取 json 数据。

该应用程序可通过 https 访问,但我收到此 ssl 错误:

“运行时:Http请求失败:javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateExpiredException:NotAfter:7 月 26 日星期六 2014 年东部标准时间 21:15:15"

这是适配器的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 密钥库

#

SSL 证书密钥库位置。 ssl.keystore.path=conf/default.keystore

SSL 证书密钥库类型(jks 或 PKCS12)ssl.keystore.type=jks

SSL 证书密钥库密码。 ssl.keystore.password=worklight

5) server.xml 文件:

<keyStore id="defaultKeyStore" password="worklight"/>

我也尝试将“默认”作为 id。

【问题讨论】:

  • 您是如何从后端导出证书并将其导入移动优先服务器密钥库的?
  • 我没有对密钥库做任何事情。一切都是从eclipse下载的。我必须创建一个吗?如果是,请给我详细信息。 (如何创建以及在哪里导入)Thnx!
  • “从 Eclipse 下载”?

标签: ssl https ibm-mobilefirst mobilefirst-server


【解决方案1】:

您没有在适配器和后端之间配置 SSL。
您应该查看的密钥库在项目的 worklight.properties 文件中定义(默认位于:workspace\CustomLoginModule\server\conf)。

请务必遵循此处提供的说明:https://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.installconfig.doc/admin/t_configuring_SSL_WL_adapters_backend_servers_certificates.html

【讨论】:

  • 我已经按照这些步骤操作,但我得到了同样的错误。我也不明白 NoAfter 中的这个日期是从哪里来的。我已经在 conf 文件夹下添加了新的 backend.keystore 和新的 default.keystore,并且我已经尝试在 server.xml 中使用它们。它们都不起作用。
  • 检查您是否使用在 worklight.properties 文件中配置的密钥库。
  • 这个日期是从哪里来的? NotAfter:2014 年 7 月 26 日星期六 21:15:15 EEST 这是默认设置......在我尝试过的所有安装中都是一样的。这不是 key.jks 的到期日期,该日期来自哪个证书?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多