sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB Conexión SSL autofirmada:la validación del certificado de pares SSL falló

Después de algunas búsquedas, parece que este error se debe a que el nombre de host "CN" era incorrecto.

De digitalocean :

Siempre que genere una CSR, se le pedirá que proporcione información sobre el certificado. Esta información se conoce como Nombre Distinguido (DN). Un campo importante en el DN es el nombre común (CN), que debe ser el nombre de dominio totalmente calificado (FQDN) exacto del host con el que desea utilizar el certificado.

También de MongoDB documentación :

Si su implementación de MongoDB usa SSL, también debe especificar la opción --host. mongo verifica que el nombre de host del mongod o mongos al que se está conectando coincida con el CN ​​o SAN del certificado --sslPEMKeyFile del mongod o mongos. Si el nombre de host no coincide con el CN/SAN, mongo no podrá conectarse.

SOLUCIÓN:

Regeneré las claves, reemplacé localhost con cualquier otro nombre de host en CN =<hostname> y completó la guía de Wan Bachtiar .

Ejecutar el siguiente comando después de la finalización funcionó:

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

Nota:MongoDB sigue una regla estricta de quién tiene acceso a qué db, una prueba rápida en el shell de mongo:

devolver un error. Sin embargo, mi usuario en realidad solo tiene acceso a la base de datos especificada en "<mi base de datos>", recorriendo las filas en "<my db>" funciona perfectamente.