我已经实施了一个与 Twitter for OAuth 对话的安全适配器。在本地MFP开发人员服务器中,对Twitter的请求有效(在我将相应的CA证书添加到本地keys.jks文件之后)。 在Bluemix上运行时,它在trustore.jks中安装了一些CA证书,但遗憾的是,未完成(见下文)
问题:如何将证书添加到truststore.jks?它位于Bluemix的本地文件系统中。 (在运行时设置下配置的密钥库的证书中添加不起作用,因为此密钥库不用于出站SSL)。
日志错误:
App/0
[ERROR ] CWPKI0022E: SSL HANDSHAKE FAILURE: A signer with SubjectDN CN=api.twitter.com, OU=Twitter Security, O="Twitter, Inc.", L=San Francisco, ST=California, C=US was sent from the target host. The signer might need to be added to local trust store /home/vcap/app/wlp/usr/servers/mfp/resources/security/truststore.jks, located in SSL configuration alias defaultSSLConfig. The extended error message from the SSL handshake exception is: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
2016-09-21T20:33:00.614+0200
App/0
java.security.cert.CertPathValidatorException: The certificate issued by CN=DigiCert High Assurance EV Root CA, OU=www.digicert.com, O=DigiCert Inc, C=US is not trusted; internal cause is:
2016-09-21T20:33:00.614+0200
App/0
java.security.cert.CertPathValidatorException: Certificate chaining error
2016-09-21T20:33:00.618+0200
答案 0 :(得分:0)
您可以从文件系统下载truststore.jks文件,添加需要添加的证书,然后转到Bluemix控制台中Mobile Foundation服务磁贴的“高级设置”部分,然后将其上传回服务器。上传它。请注意,此操作会重新创建服务器,因此,如果您使用的是免费的开发人员计划,那么您将丢失内存中的Derby数据库中的所有内容,并且实际上必须“重新开始”。如果您使用的是使用DashDB的付费方案,则将保留数据库的内容。
答案 1 :(得分:0)
可以通过MobileFirst Server Operations Console添加证书。使用运行时设置 - >密钥库 - >配置密钥库选项以上载自定义密钥库。
1)您可以使用keytool实用程序创建密钥库。
2)使用keytool -importcert选项将缺少的证书添加到密钥库。
3)使用操作控制台上传密钥库