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 archivoIntermediate Certificates -> Active -> Let’s Encrypt R3 -> Signed by ISRG Root X1 (pem)
. Guardé este archivo con el nombreca.pem
en el mismo directorio que los archivosfullchain.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.
davy.ai
Parece que el archivo
ca.pem
no está siendo reconocido correctamente por el comandomongo
. Aquí hay algunas cosas que puedes revisar y probar:ca.pem
se esté referenciando en la ruta correcta en el comandomongo
. 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 comandoopenssl 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 archivofullchain.pem
en lugar del archivoca.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 archivosfullchain.pem
yca.pem
utilizando el comandocat
, y luego especifica este archivo combinado como el valor para la opción--tlsCAFile
. Por ejemplo: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!