2017-05-30 11 views
0

私たちはmongodbデータベースを照会し、クライアントへのJSON応答を提供するJavaアダプタを用意しています。bluemixにデプロイされたJavaアダプタのSSL構成とmongodbの作成

私たちは自然にSSLHandshakeExceptionを得るbluemix上のコンにMongoDBを照会しようとしているローカルサーバーに展開するとスローされた例外は、keytoolを使用して提案されているように、これは手動で地元mobilefirstキーストアにコンのMongoDBが提供する証明書をインポートすることによって解決された:

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と我々が作成した3.2.2

そして、我々は、自己にコンの証明書をインポートするには、このコマンドを使用しているが、1に署名したのMongoDBのJavaドライバのバージョンを使用している:

keytool -importcert -keystore <keystore name> -file <certificate_file_path> 

答えて

0

あなたは可能性をspring-boot-ssl-truststore-genを使用してみてくださいし、プログラムトラストストアに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.xmでこれが必要になりますL(または代替):

<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> 
関連する問題