Sto provando a configurare l'ultima versione di MongoDB con crittografia SSL, sono stato in grado di connettermi dalla shell mongo ma sto ricevendo un errore quando mi connetto da un Java Cliente.Impossibile connettersi da JAVA a Mongo SSL Replica Set
Opere
mongo amministratore --host mongo1.xxxx.com --ssl --sslPEMKeyFile mongoClient.pem --sslCAFile mongoCA.crt
Non funziona
public static void main(String args[]){
System.setProperty("javax.net.ssl.trustStore","/home/gasparms/truststore.ts");
System.setProperty("javax.net.ssl.trustStorePassword", "mypasswd");
System.setProperty("javax.net.ssl.keyStore", "/home/gasparms/truststore.ts");
System.setProperty("javax.net.ssl.keyStorePassword", "mypasswd");
System.setProperty("javax.security.auth.useSubjectCredsOnly","false");
MongoClientOptions options = MongoClientOptions.builder().sslEnabled(true)
.build();
MongoClient mongoClient = new MongoClient("mongo1.xxxx.com",options);
System.out.println(mongoClient.getDatabaseNames());
}
Ho ricevuto questo errore dal lato Mongo:
2015-06-09T15: 08: 14.431ZI NETWORK collegamento [initandlisten] accettato da 192.168.33.1:38944 # 585 (3 connessioni ora aperte) 2015-06-09T15: 08: 14.445ZE NETWORK [conn585] no SSL certificato fornito da pari; connessione rifiutata 2015-06-09T15: 08: 14.445ZI RETE [conn585] connessione finale 192.168.33.1:38944 (2 connessioni ora aperte) 2015-06-09T15: 08: 14.828ZI NETWORK [conn580] connessione finale 192.168. 33.13: 39240 (1 collegamento ora aperto)
in programma client java
INFORMACIÓN: eccezione nel thread di monitoraggio durante la connessione al server mongo1.xxxx.com:27017 com.mongodb.MongoSocketReadException: Raggiunta prematuramente la fine del flusso a com.mongodb.connection.So cketStream.read (SocketStream.java:88) a com.mongodb.connection.InternalStreamConnection.receiveResponseBuffers (InternalStreamConnection.java:491) a com.mongodb.connection.InternalStreamConnection.receiveMessage (InternalStreamConnection.java:221) a com.mongodb.connection.CommandHelper.receiveReply (CommandHelper.java:134) a com.mongodb.connection.CommandHelper.receiveCommandResult (CommandHelper.java:121) a com.mongodb.connection.CommandHelper.executeCommand (CommandHelper. java: 32) a com.mongodb.connection.InternalStreamConnectionInitializer.initializeConnectionDescription (InternalStreamConnectionInitializer.java:83) a com.mongodb.connection.InternalStreamConnectionInitializer.initialize (InternalStreamConnectionInitializer.java:43) a com.mongodb.connection.InternalStreamConnection.open (InternalStreamConnection.java:115) a com.mongodb.connection.DefaultServerMonitor $ ServerMonitorRunnable .run (DefaultServerMonitor.java:127) a java.lang.Thread.run (Thread.java:745)
creazione di certificati
ho mongoCA.crt e mongoClient.pem che w orchi con guscio di mongo. Poi, voglio importare .pem e .crt ad un java chiavi
openssl x509 -outform der -in certificate.pem -out certificate.der
keytool -import -alias MongoDB-Client -file certificate.der -keystore truststore.ts -noprompt -storepass "mypasswd"
keytool -import -alias "MongoDB-CA" -file mongoCA.crt -keystore truststore.ts -noprompt -storepass "mypasswd"
Quello che sto facendo di sbagliato?
Sei sicuro che il server sia in esecuzione con ssl abilitato? Prova a connetterti senza alcuna configurazione di ssl (tramite cli/shell e il driver java) per verificare. – evanchooly
Sì, admin mongo --host mongo1.xxxx.com --ssl --sslPEMKeyFile mongoClient.pem --sslCAFile mongoCA.crt funziona, ma mongo admin --host mongo1.xxxx.com no. Log dice che non è possibile collegare – gasparms
Esattamente il mio problema. Hai trovato una soluzione? – Nishant