Ibm mobilefirst 部署在bluemix和compose mongodb上的java适配器的SSL配置

Ibm mobilefirst 部署在bluemix和compose mongodb上的java适配器的SSL配置,ibm-mobilefirst,mobilefirst-server,Ibm Mobilefirst,Mobilefirst Server,我们有一个Java适配器,用于查询mongodb数据库并向客户端提供JSON响应 当部署到本地服务器上尝试查询bluemix上的compose mongodb时,我们自然会得到SSLHandshakeException,这可以通过手动将compose mongodb提供的证书导入本地mobilefirst密钥库来解决,正如使用keytool建议的抛出异常: mfp-server\usr\servers\mfp\resources\security\key.jks 如文档所示,通过mfp UI控

我们有一个Java适配器,用于查询mongodb数据库并向客户端提供JSON响应

当部署到本地服务器上尝试查询bluemix上的compose mongodb时,我们自然会得到
SSLHandshakeException
,这可以通过手动将compose mongodb提供的证书导入本地mobilefirst密钥库来解决,正如使用keytool建议的抛出异常:

mfp-server\usr\servers\mfp\resources\security\key.jks
如文档所示,通过mfp UI控制台创建密钥库并不能解决此问题

然而,如何在BLUMIX上部署的移动基础上实现同样的操作,我们感到困惑。 我们尝试通过接口添加密钥库,在适配器描述符文件中创建连接策略,并在jaxrs应用程序类中使用
System
属性

System.setProperty("javax.net.ssl.trustStore",getClass().getClassLoader().getResource("keystorefile").getPath());
System.setProperty("javax.net.ssl.trustStorePassword", "keystorepassword");
到目前为止,没有一个可以工作,本地实例也是如此,更新
key.jks
是我们让mfserver和composeMongoDB工作的唯一方法

我们使用的是MobileFirst 8和mongodb java驱动程序版本3.2.2

我们正在使用此命令将compose的证书导入到我们创建的自签名证书:

keytool -importcert -keystore  <keystore name> -file <certificate_file_path>
keytool-importcert-keystore-file
您可以尝试使用和编写一些代码,以编程方式将compose键添加到信任库:

public static final String SSL_TRUST_STORE_SYSTEM_PROPERTY = "javax.net.ssl.trustStore";
public static final String SSL_TRUST_STORE_PASSWORD_SYSTEM_PROPERTY = "javax.net.ssl.trustStorePassword";

private String certificate = "-----BEGIN CERTIFICATE-----" +
                             "..." + 
                             "-----END CERTIFICATE-----";

static {
    DefaultTrustStoreAppender trustStoreAppender = new DefaultTrustStoreAppender();
    final TrustStoreInfo trustStoreInfo = trustStoreAppender.append(CertificateFactory.newInstance(certificate));
    System.setProperty(SSL_TRUST_STORE_SYSTEM_PROPERTY, trustStoreInfo.getTrustStorefFile().getAbsolutePath());
    System.setProperty(SSL_TRUST_STORE_PASSWORD_SYSTEM_PROPERTY, trustStoreInfo.getPassword());
}
您可能需要在pom.xml(或备选方案)中使用此选项:


jcenter
http://jcenter.bintray.com 
真的
从未
警告
真的
警告


com.orange.clara.cloud.boot.ssl-truststore-gen
spring boot ssl信任存储gen
2.0.21
<repositories>
   <repository>
      <id>jcenter</id>
      <url>http://jcenter.bintray.com </url>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
        <checksumPolicy>warn</checksumPolicy>
      </snapshots>
       <releases>
         <enabled>true</enabled>
         <checksumPolicy>warn</checksumPolicy>
      </releases>
   </repository>
</repositories> 
<dependency>
    <groupId>com.orange.clara.cloud.boot.ssl-truststore-gen</groupId>
    <artifactId>spring-boot-ssl-truststore-gen</artifactId>
    <version>2.0.21</version>
</dependency>