MongoDB: Falha na validação do certificado peer SSL: certificado autoassinado

4

Eu segui o este tutorial para criar uma raiz Certificado CA e, em seguida, usou-o para assinar uma chave para o servidor mongod. Eu corro monogd com esta configuração, seguindo este doc :

  net:
    ssl:
      mode: requireSSL
      PEMKeyFile: /home/user/device.pem
      CAFile: /home/user/rootCA.pem
      allowInvalidCertificates: true
      allowInvalidHostnames: true

Os dois últimos que adicionei, pois estou tendo uma falha de conexão.

Estou usando essas linhas para se conectar:

./mongo <host>:<port>/<db>  -u <user> -p <pwd> --ssl --sslAllowInvalidCertificates --sslCAFile ~/Downloads/rootCA.pem

./mongo <host>:<port>/<db>  -u <user> -p <pwd> --ssl --sslAllowInvalidCertificates

./mongo <host>:<port>/<db>  -u <user> -p <pwd> --ssl

Mas tudo isso produz:

MongoDB shell version v3.4.2
connecting to: mongodb://<host>:<port>/<db>
2017-03-30T14:39:15.307+0300 E NETWORK  [thread1] SSL peer certificate validation failed: self signed certificate
2017-03-30T14:39:15.311+0300 E QUERY    [thread1] Error: socket exception [CONNECT_ERROR] for SSL peer certificate validation failed: self signed certificate :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed

Alguma ideia do que estou fazendo errado? Eu sei que é um certificado auto-assinado Apreciará sua ajuda

Também tentei seguir a resposta aqui: link

    
por sagioto 30.03.2017 / 13:42

1 resposta

3

No seu arquivo de configuração mongod , você especifica modo SSL para ser requireSSL . Isso significa que o servidor mongod , somente usa e aceita conexões criptografadas TLS / SSL.

O cliente mongo shell, no seu caso, precisa especificar --sslPEMKeyFile para passar o arquivo PEM do cliente. Veja também configuração SSL do mongo shell ou Tutorial: configurar SSL para clientes .

The 2 last ones I added since I am getting a connection failure.

No que diz respeito à segurança, tenha um cuidado extra ao permitir configurações. Por favor, veja a descrição dos dois parâmetros para o que eles são: --allowInvalidCertificates e --allowInvalidHostnames

    
por 03.04.2017 / 08:04