Question MongoDB: La validation du certificat homologue SSL a échoué: certificat auto-signé


J'ai suivi ce tutoriel pour créer à la fois un certificat d'autorité de certification racine et l'utiliser pour signer une clé pour le serveur mongod. Je lance monogd avec cette configuration, en suivant ceci doc:

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

Les 2 derniers que j'ai ajoutés depuis que j'obtiens un échec de connexion.

J'utilise ces lignes pour me connecter:

./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

Mais tous produisent:

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

Toute idée de ce que je fais mal? Je sais que c'est un certificat auto-signé Apprécierez votre aide

Aussi essayé de suivre la réponse ici: https://stackoverflow.com/questions/21297139/how-do-you-sign-certificate-signing-request-with-yur-certification-authority/21340898#21340898


4
2018-03-30 11:42


origine




Réponses:


Dans ton mongod fichier de configuration, vous spécifiez Mode SSL être requireSSL. Cela signifie que le mongod serveur, seulement utilise et accepte les connexions chiffrées TLS / SSL.

Le client mongo shell dans votre cas, doit préciser --sslPEMKeyFile pour transmettre le fichier PEM des clients. Voir également mongo shell configuration SSL ou Tutoriel: configurer SSL pour les clients.

Les 2 derniers que j'ai ajoutés depuis que j'obtiens un échec de connexion.

En ce qui concerne la sécurité, faites très attention aux configurations habilitantes. S'il vous plaît voir la description des deux paramètres pour ce qu'ils sont pour: --allowInvalidCertificates et --allowInvalidHostnames


3
2018-04-03 06:04



Êtes-vous sûr que les clients doivent avoir des certificats? J'ai compris que ce n'est le cas que si je spécifie également le paramètre CAFile. En ce qui concerne la sécurité, j'essaie bien sûr de réduire les restrictions autant que possible pour que la connexion fonctionne, puis de la restreindre une fois que je trouve ce qui ne va pas et qu'il ne contient aucune donnée. . - sagioto