我们有一个Java适配器,用于查询mongodb数据库并向客户端提供JSON响应。
当部署到尝试在bluemix上查询compose mongodb的本地服务器时,我们自然得到SSLHandshakeException
,这是通过手动将compong mongodb提供的证书导入我们的本地mobilefirst密钥库来解决的,因为建议使用抛出的异常密钥工具:
mfp-server\usr\servers\mfp\resources\security\key.jks
通过mfp UI控制台创建密钥库并没有像文档建议的那样解决这个问题。
但是,我们很困惑如何在bluemix上部署的移动基础上做同样的事情。
我们尝试通过接口添加密钥库,在适配器描述符文件中创建连接策略,并在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
我们正在使用此命令将撰写的证书导入我们创建的自签名证书:
keytool -importcert -keystore <keystore name> -file <certificate_file_path>
答案 0 :(得分:0)
您可以尝试使用spring-boot-ssl-truststore-gen并编写一些代码以编程方式将撰写密钥添加到信任库:
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(或替代方案)中使用它:
<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>