MongoDB SSL encryption and Spring's Driver

Il existe des informations très limitées concernant le cryptage MongoDB et SSL pour le transport entre les ensembles de réplicas et les pilotes (clients java). Quelqu'un a-t-il une expérience dans la mise en place? Vous cherchez à avoir du trafic (requêtes et informations de réplication) entre les nœuds cryptés sans avoir à utiliser Stunnel ou une autre méthode proxy SSL.

One Solution collect form web for “MongoDB SSL encryption and Spring's Driver”

Tout d'abord, permettez-moi de dire que les documents SSL de MongoDB sont en cours d'utilisation, la plupart des informations ici seront incluses éventuellement, mais jusqu'à ce moment-là …

Le pilote Java, que je crois que le printemps utilise, prend en charge SSL. Pour que mongoDB s'exécute avec SSL, il existe actuellement deux options. Tout d'abord, vous pouvez devenir abonné et utiliser l'édition d'abonné – qui possède un support SSL (et SNMP) intégré:

https://www.10gen.com/mongodb-subscriber-edition-download

À la date de l'écriture, il s'agit d'une nouveauté et n'est disponible que pour Amazon Linux et Ubuntu.

La deuxième option, grâce au fait que MongoDB est open source, consiste à vous construire une copie de mongoDB avec support SSL. Pour ce faire, je recommanderais d'abord d'après les instructions générales de construction jusqu'à ce que vous réussissiez avec une compilation non-SSL:

http://www.mongodb.org/display/DOCS/Building+for+Linux

Ensuite, créez avec le drapeau –ssl passé aux scons pour activer SSL. Vous devrez également installer les bibliothèques openssl requises ou la vérification des dépendances de configuration échouera (généralement libssl et libssl-dev).

Une fois que vous avez terminé cette étape, vous devriez être prêt à partir. Lors de l'exécution de MongoDB avec SSL activé, gardez à l'esprit que vous devez vous connecter à SSL pour tout . Tous les clients, le shell, le pilote et le MMS devront tous se connecter via SSL ou échouer. Afin de démarrer le mongod avec SSL, vous aurez besoin d'un cert, d'une clé, d'un mot de passe et de quelque chose comme ces options (en plus des autres options que vous souhaitez passer):

mongod --sslOnNormalPorts --sslPEMKeyFile <pem> --sslPEMKeyPassword <pass> 

Vous pouvez également spécifier cette option dans un fichier de configuration (généralement /etc/mongodb.conf):

 sslOnNormalPorts = true sslPEMKeyFile = /etc/ssl/mongodb.pem sslPEMKeyPassword = pass 

Pour l'enveloppe, utilisez simplement

 mongo --ssl --host <hostname> --port <port> 

Enfin, vous avez mentionné l'utilisation de Java, voici un exemple de fichier de classe "sslApp.java":

 import com.mongodb.*; import javax.net.ssl.SSLContext; public class sslApp { public static void main(String args[]) throws Exception { MongoOptions o = new MongoOptions(); o.socketFactory = SSLSocketFactory.getDefault(); Mongo m = new Mongo( "localhost" , o ); DB db = m.getDB( "test" ); DBCollection c = db.getCollection( "foo" ); System.out.println( c.findOne() ); } } 
Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.