SSL est extrêmement important pour maintenir la confidentialité et la validité de vos données sur des réseaux non fiables. Si vous déployez un cluster de bases de données de production sur Internet, SSL est certainement quelque chose que vous devriez considérer. ScaleGrid prend désormais en charge l'activation de SSL pour vos serveurs MongoDB.
L'activation de SSL est désormais aussi simple que de cocher une case dans l'assistant de création de MongoDB :
Alors pourquoi utiliser SSL avec MongoDB ?
-
Confidentialité
Si vous vous connectez à votre serveur MongoDB via des réseaux non sécurisés, vos données voyagent sans chiffrement et sont susceptibles à la fois d'être écoutées et falsifiées. SSL crypte les données afin que seuls les deux terminaux aient accès aux données non cryptées.
-
Authentification
Utilisez PKI (infrastructure à clé privée) pour vous assurer que seuls les clients disposant de certificats d'une autorité de certification appropriée peuvent se connecter au serveur MongoDB. Il s'agit d'une étape supplémentaire et vous pouvez choisir de ne pas utiliser vos certificats personnalisés ou votre autorité de certification ; vous bénéficierez toujours des avantages de la confidentialité grâce au chiffrement de bout en bout.
Inconvénients de MongoDB SSL
-
Surcharge de performances
Il y a certainement une surcharge de performances pour l'utilisation de SSL. Bien que nous n'ayons pas encore effectué de tests complets, l'utilisation de SSL entraîne une surcharge certaine.
-
Manque d'interface utilisateur MongoDB
La plupart des interfaces utilisateur MongoDB populaires ne prennent pas en charge le protocole SSL prêt à l'emploi. Vous devrez donc peut-être opter pour la version payante ou utiliser la console mongo.
Connexion à votre serveur MongoDB compatible SSL
Si vous vous connectez à un serveur MongoDB avec SSL activé, il existe plusieurs différences dans le code de connexion MongoDB. Veuillez vous référer à la documentation de votre pilote pour plus de détails.
-
Coquille Mongo
Le client mongo par défaut ne prend pas en charge les connexions à un serveur compatible SSL - vous avez besoin de la version compatible SSL de MongoDB. Vous pouvez vous connecter en SSH au serveur compatible SSL, puis utiliser le client mongo sur le serveur pour vous connecter. Voici la syntaxe pour se connecter en utilisant l'utilisateur admin fourni par ScaleGrid :
mongo <span style="color: #758e9f;">--ssl --sslCAFile <file.crt></span> -u admin -p <pass> servername/admin
-
Code
Vous devrez ajouter la propriété "ssl=true" à votre chaîne de connexion MongoDB. De plus, certaines plates-formes (par exemple JDK) vous demanderont d'ajouter la clé publique du certificat SSL au chemin de confiance avant de pouvoir vous connecter au serveur. Par défaut, un certificat auto-signé est généré pour chaque cluster. Vous pouvez télécharger la clé publique du certificat SSL à partir de l'interface utilisateur ou vous pouvez télécharger le certificat à partir de /etc/ssl/mongodb-cert.crt sur le serveur. Dans l'interface utilisateur, un lien pour télécharger le certificat public SSL est disponible dans la chaîne de connexion modale :
Pour plus d'instructions sur la façon dont vous pouvez vous connecter en SSH à l'instance, reportez-vous à la section "Identifiants de VM" de cet article de blog. Le fichier crt se trouve dans /etc/ssl/mongodb-cert.crt sur le serveur. Une fois que vous avez téléchargé la clé publique, vous devrez l'ajouter à votre clé de voûte de confiance :
keytool -import -alias "MongoDB-cert" -file "/etc/ssl/mongodb-cert.crt" -keystore "/usr/java/default/jre/lib/security/cacerts" -noprompt -storepass "changeit"
Le mot de passe par défaut pour le magasin cacerts est "changeit". Pour des raisons de sécurité, vous devez remplacer ce mot de passe par le vôtre. Une fois que vous avez ajouté le certificat, énumérez les certificats dans la clé de voûte pour confirmer que le certificat a bien été ajouté :
keytool -list -keystore cacerts -storepass changeit
-
Interface utilisateur Mongo :Robo 3T
Robo 3T (anciennement Robomongo) est l'une des rares interfaces utilisateur MongoDB qui prend en charge la connexion avec SSL. Lors de la création d'une connexion à votre serveur MongoDB, sélectionnez l'option SSL. Pour le certificat, utilisez le fichier .pem contenant à la fois la clé publique et la clé privée. Ce fichier se trouve dans /etc/ssl sur votre serveur MongoDB. Consultez notre guide de connexion Robo 3T MongoDB pour plus de détails.
Comme toujours, si vous avez des questions, veuillez nous contacter à [email protected].