を有効にしてMongoDb
インスタンスを実行しています(シングルインスタンス)。私はSSL
タブに、私は次を提供RoboMongo
とそれに接続することができる午前:JAVAアプリケーションからSSLを使用してMongoDbに接続
CA File : /path to my certificate/testCA.pem
PEM certificate/key: /path to my key/testKey.pem
。今私はjavaアプリから同じmondodbに接続しようとしています。次のコマンドを使用して、cacertsにtestCA.pemをインポートしました。
keytool -import -keystore cacerts -file testCA.pem -storepass changeit
と私はストアに新しいエントリが追加されています。他のキーを追加しようとすると、無効な証明書が表示されます。
System.setProperty ("javax.net.ssl.trustStore","C:\\Program Files\\Java\\jre1.8.0_91\\lib\\security\\cacerts");
System.setProperty ("javax.net.ssl.trustStorePassword","changeit");
を、私は次のエラーを取得しています:私はここ
org.springframework.dao.DataAccessResourceFailureException: Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=test.mongo.com:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.io.EOFException}}]; nested exception is com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting to connect. Client view of cluster state is {type=Unknown, servers=[{address=test.mongo.com:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.io.EOFException}}]
at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:75)
at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:2075)
at org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate.java:1918)
何をしないのです、事前に感謝をJavaアプリケーションでは、私は次のようにシステムプロパティを設定します!
私はまったく同じ問題を抱えていますが、それでも私のために働いていません。私はxyz.pkcs12を 'testKey.pem'から作成してWindowsにコピーし、Windowsにコピーしてキーストアにインポートしました。そうしなければ私はすべきですか? – Amit
@あなたはスタックトレースを投稿できますか? – Gurkha
javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:sun.security.ssl.Alerts.getSSLException(不明なソース) \tで \t sun.security.ssl.SSLSocketImpl.fatalに存在しませんサブジェクト代替名sun.security.ssl.Handshaker.fatalSE(不明なソース)でsun.security.ssl.Handshaker.fatalSE(不明なソース)で(不明なソース) \t \t sun.security.ssl.ClientHandshaker.serverCertificateで \t(不明ソース) \t at sun.security.ssl.ClientHandshaker.processMessage(不明なソース) \t sun.security.ssl.Handshaker.processLoop(不明なソース) – Amit