MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Selbstsignierte MongoDB-SSL-Verbindung:Überprüfung des SSL-Peer-Zertifikats fehlgeschlagen

Nach einigem Suchen scheint dieser Fehler darauf zurückzuführen zu sein, dass der Hostname "CN" falsch war.

Von digitalocean :

Wenn Sie eine CSR erstellen, werden Sie aufgefordert, Informationen zum Zertifikat anzugeben. Diese Informationen werden als Distinguised Name (DN) bezeichnet. Ein wichtiges Feld im DN ist der Common Name (CN), der der genaue vollständig qualifizierte Domänenname (FQDN) des Hosts sein sollte, mit dem Sie das Zertifikat verwenden möchten.

Auch von MongoDB Dokumentation :

Wenn Ihre MongoDB-Bereitstellung SSL verwendet, müssen Sie auch die Option --host angeben. mongo überprüft, ob der Hostname des mongod oder mongos, mit dem Sie sich verbinden, mit dem CN oder SAN des --sslPEMKeyFile-Zertifikats des mongod oder mongos übereinstimmt. Wenn der Hostname nicht mit dem CN/SAN übereinstimmt, kann Mongo keine Verbindung herstellen.

LÖSUNG:

Ich habe die Schlüssel neu generiert und localhost durch einen beliebigen anderen Hostnamen im CN =<hostname ersetzt> und den Leitfaden von Wan Bachtiar .

Das Ausführen des folgenden Befehls nach Abschluss hat funktioniert:

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

Hinweis:Die MongoDB folgt einer strengen Regel, wer Zugriff auf welche Datenbank hat, ein schneller Test in der Mongo-Shell:

einen Fehler zurückgeben. Meine Benutzer haben jedoch tatsächlich nur Zugriff auf die Datenbank, die in "<meine Datenbank angegeben ist>", also Schleifen durch die Zeilen in "<my db>" funktioniert einwandfrei.