MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Connexion SSL auto-signée MongoDB :échec de la validation du certificat pair SSL

Après quelques recherches, il semble que cette erreur soit due au fait que le nom d'hôte "CN" était incorrect.

De digitalocean :

Chaque fois que vous générez un CSR, vous serez invité à fournir des informations concernant le certificat. Cette information est connue sous le nom de nom distinctif (DN). Un champ important dans le DN est le nom commun (CN), qui doit être le nom de domaine complet (FQDN) exact de l'hôte avec lequel vous avez l'intention d'utiliser le certificat.

Également de MongoDB documentation :

Si votre déploiement MongoDB utilise SSL, vous devez également spécifier l'option --host. mongo vérifie que le nom d'hôte du mongod ou des mongos auxquels vous vous connectez correspond au CN ou au SAN du certificat --sslPEMKeyFile du mongod ou du mongos. Si le nom d'hôte ne correspond pas au CN/SAN, mongo ne parviendra pas à se connecter.

SOLUTION :

J'ai régénéré les clés, remplacé localhost par n'importe quel autre nom d'hôte dans le CN =<hostname> et complété le guide par Wan Bachtiar .

L'exécution de la commande suivante après l'achèvement a fonctionné :

$ mongo --port 27017 -u '<_username_>' -p '<_password_>' 
--authenticationDatabase "<_my db_>" --ssl --sslPEMKeyFile 
/etc/ssl/client.pem  --sslCAFile /etc/ssl/ca.pem --host localhost

Remarque :MongoDB suit une règle stricte de qui a accès à quelle base de données, un test rapide dans le shell mongo :

retourner une erreur. Cependant, mon utilisateur n'a en fait accès qu'à la base de données spécifiée dans "<ma base de données>", donc en parcourant les lignes dans "<my db>" fonctionne parfaitement.