MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Conexão SSL autoassinada do MongoDB:falha na validação do certificado de mesmo nível SSL


Depois de algumas pesquisas, parece que esse erro se deve ao fato de o nome do host "CN" estar incorreto.

De digitalocean :

Sempre que você gerar um CSR, você será solicitado a fornecer informações sobre o certificado. Essas informações são conhecidas como Nome Distinto (DN). Um campo importante no DN é o nome comum (CN), que deve ser o nome de domínio totalmente qualificado (FQDN) exato do host com o qual você pretende usar o certificado.

Também do MongoDB documentação :

Se sua implantação do MongoDB usa SSL, você também deve especificar a opção --host. O mongo verifica se o nome do host do mongod ou mongos ao qual você está se conectando corresponde ao CN ou SAN do certificado --sslPEMKeyFile do mongod ou mongos. Se o nome do host não corresponder ao CN/SAN, o mongo não conseguirá se conectar.

SOLUÇÃO:

Regenerei as chaves, substituí localhost por qualquer outro nome de host no CN =<hostname> e completou o guia de Wan Bachtiar .

Executando o seguinte comando após a conclusão funcionou:
$ mongo --port 27017 -u '<_username_>' -p '<_password_>' 
--authenticationDatabase "<_my db_>" --ssl --sslPEMKeyFile 
/etc/ssl/client.pem  --sslCAFile /etc/ssl/ca.pem --host localhost

Nota:O MongoDB segue uma regra estrita de quem tem acesso a qual db, um teste rápido no shell do mongo:

retornar um erro. No entanto, meu usuário na verdade só tem acesso ao banco de dados especificado em "<meu banco de dados>", então percorrendo as linhas em "<meu db>" funciona perfeitamente.