MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB Connessione SSL autofirmata:convalida del certificato peer SSL non riuscita

Dopo alcune ricerche, sembra che questo errore sia dovuto al fatto che il nome host "CN" non era corretto.

Da digitalocean :

Ogni volta che generi una CSR, ti verrà chiesto di fornire informazioni relative al certificato. Queste informazioni sono note come Distinguished Name (DN). Un campo importante nel DN è il nome comune (CN), che dovrebbe essere l'esatto nome di dominio completo (FQDN) dell'host con cui intendi utilizzare il certificato.

Anche da MongoDB documentazione :

Se la tua distribuzione MongoDB utilizza SSL, devi anche specificare l'opzione --host. mongo verifica che il nome host del mongod o dei mongos a cui ti stai connettendo corrisponda al CN o al SAN del certificato --sslPEMKeyFile di mongod o mongos. Se il nome host non corrisponde a CN/SAN, mongo non riuscirà a connettersi.

SOLUZIONE:

Ho rigenerato le chiavi, sostituito localhost con qualsiasi altro hostname nel CN ​​=<hostname> e completato la guida di Wan Bachtiar .

L'esecuzione del seguente comando dopo il completamento ha funzionato:

$ 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 segue una rigida regola di chi ha accesso a quale db, un rapido test nella mongo shell:

restituire un errore. Tuttavia, il mio utente in realtà ha accesso solo al db specificato in "<il mio db>", quindi scorrendo le righe in "<mio db>" funziona perfettamente.