es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mongodb SSL: no se puede obtener el certificado del emisor.

Estoy intentando configurar ssl/tls con mongod en ubuntu 20.04 LTS. La versión de mongod es 5.0.5.
Para generar ssl/tls, estoy utilizando certificados ssl/ssl de let's encrypt. Utilicé el siguiente comando para generar el certificado ssl/tls.

sudo certbot certonly --standalone --preferred-challenges http -d example.domain.com

Para configurarlo con mongod, realicé los siguientes pasos:
– Copié los archivos fullchain.pem y privkey.pem en una carpeta.
– Usé este comando para generar el archivo mongodb.pem para mongod.

cat privkey.pem fullchain.pem > mongodb.pem

  • Para el archivo ca.pem, fui a esta URL, https://letsencrypt.org/certificates/ y descargué el archivo Intermediate Certificates -> Active -> Let’s Encrypt R3 -> Signed by ISRG Root X1 (pem). Guardé este archivo con el nombre ca.pem en el mismo directorio que los archivos fullchain.pem/privkey.pem.

Verifiqué el certificado utilizando el siguiente comando. Devolvió mongodb.pem: OK

openssl verify -CAfile ca.crt mongodb.pem

Luego configuré la configuración de ssl/tls con mongod, agregué las siguientes líneas en /etc/mongod.conf

net:
  port: 27017
  bindIp: 0.0.0.0
  tls:
    mode: requireTLS
    certificateKeyFile: /path/to/mongodb.pem
    CAFile: /path/to/ca.pem
    allowConnectionsWithoutCertificates: false

Reinicié el servicio de mongod y está en ejecución con el estado active (running).

Estoy intentando conectarme a mongodb utilizando el siguiente comando.

mongo --tls --tlsCAFile ca.pem --tlsCertificateKeyFile mongodb.pem --host mongodb.example-domain.com

Pero obtengo este error cuando intento conectarme a mongodb con el comando anterior:

SSL peer certificate validation failed: unable to get issuer certificate

No sé qué estoy haciendo mal en todo el proceso. Si alguien puede ayudarme con este problema de certificado ssl/tls. Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el archivo ca.pem no está siendo reconocido correctamente por el comando mongo. Aquí hay algunas cosas que puedes revisar y probar:

    • Asegúrate de que el archivo ca.pem se esté referenciando en la ruta correcta en el comando mongo. Verifica la ruta y el nombre del archivo para asegurarte de que coincidan con la ubicación actual del archivo en tu sistema.
    • Confirma que el archivo ca.pem contiene el certificado intermedio correcto para tu certificado SSL/TLS de Let’s Encrypt. Puedes usar el comando openssl x509 -in ca.pem -noout -text para ver el contenido del archivo y verificar que incluya la información apropiada del Emisor, Sujeto y Clave Pública para el certificado intermedio Let’s Encrypt R3.

    • Intenta usar la opción --tlsCAFile para especificar la ruta completa del archivo fullchain.pem en lugar del archivo ca.pem. Este archivo debe contener la cadena completa de certificados, incluyendo los certificados intermedios y raíz.

    • Si el uso del archivo fullchain.pem no funciona, intenta concatenar los archivos fullchain.pem y ca.pem utilizando el comando cat, y luego especifica este archivo combinado como el valor para la opción --tlsCAFile. Por ejemplo:

      cat fullchain.pem ca.pem > combined.pem
      mongo --tls --tlsCAFile combined.pem --tlsCertificateKeyFile mongodb.pem --host mongodb.example-domain.com
      

    Espero que una de estas sugerencias te ayude a resolver el error de validación de certificado de pares SSL y puedas conectar exitosamente a mongod utilizando SSL/TLS. ¡Buena suerte!

Comments are closed.