Docs Menu
Docs Home
/ /
/ / /

Conéctese a un conjunto de réplicas habilitado para TLS.

Este tutorial te muestra cómo conectar mongosh a un Conjuntode réplicas autogestionado con TLS habilitado.

Antes de comenzar, verifique que tiene lo siguiente:

  • Un conjunto de réplicas que usted configuró para usar TLS siguiendo los pasos en Configurar TLS en implementaciones autogestionadas.

  • El control de acceso a MongoDB debe estar habilitado en su implementación y se debe haber creado al menos un usuario administrador. Para configurar el control de acceso, consulte Habilitar el control de acceso en implementaciones autogestionadas. Este usuario debe tener clusterMonitor privilegios.

  • Si desea conectarse a su implementación mediante autenticación X.509, asegúrese de tener OpenSSL instalado para generar un certificado de cliente.

  • Acceso mongosh a.

Si no desea utilizar la autenticación mutua TLS o X.,509 siga este procedimiento. Si establece allowConnectionsWithoutCertificates en true en la configuración de su servidor, los clientes podrán conectarse sin presentar un certificado y autenticarse con SCRAM.

1

Conecta mongosh a tu conjunto de réplicas usando las siguientes opciones:

mongosh "mongodb://mongo0.example.com:27017,mongo1.example.com:27017,mongo2.example.com:27017" \
--tls --tlsCAFile /etc/ssl/mongodb/ca.pem
  • --tls Habilita el cifrado TLS para la conexión.

  • --tlsCAFile se establece en el certificado CA que firmó los certificados del servidor para que mongosh pueda verificar los certificados del servidor.

Conectarse sin un certificado de cliente establece una sesión cifrada con TLS, pero no te autentica. Para ejecutar la mayoría de los comandos, debes autenticarte mediante un mecanismo como SCRAM.

2

Utilice el método para autenticarse con su nombre de usuario y contraseña de db.auth() administrador.

3

Ejecute lo siguiente para confirmar su estado de autenticación:

db.adminCommand({ connectionStatus: 1 })

Confirme que authInfo.authenticatedUsers incluye al usuario esperado.

Si desea utilizar la autenticación mutua de cliente TLS y X.509 al conectarse a su implementación, siga este procedimiento para crear y autenticarse con un certificado de cliente.

1

Advertencia

No utilice el mismo certificado que los nodos de su servidor. Debe generar un nuevo certificado de cliente para la509 autenticación X., incluso si los certificados de su servidor son válidos para la autenticación de cliente.

Genere un certificado de cliente utilizando el proceso descrito en Obtener certificados de servidor TLS. Realice los siguientes ajustes:

  • En su archivo de configuración, establezca extendedKeyUsage = clientAuth en lugar de serverAuth.

  • La CA que firmó los certificados de autenticación de cliente de su nodo también debe firmar su certificado de cliente. Generalmente, esta es ca.pem. Sin embargo, si obtuvo certificados separados para la autenticación de cliente, es posible que tenga una CA diferente para los certificados de cliente.

  • Asigne a sus archivos de salida los nombres client.key, client.crt y client.pem en lugar de los nombres específicos de los nodos utilizados en el tutorial de certificados.

Una vez finalizado el proceso, copie client.pem en una ubicación segura de la máquina donde ejecuta mongosh:

cp client.pem /etc/ssl/mongodb/client.pem
2

Identifique el sujeto de su certificado de cliente. Necesita este valor para confirmar que se autenticó con el certificado de cliente esperado después de conectarse.

Para ver el tema, ejecute el siguiente comando:

openssl x509 -in /etc/ssl/mongodb/client.pem -noout -subject

Tome nota del resultado, que se parece al siguiente:

subject=C=US, ST=New-York, L=New York City, O=MongoDB, CN=myUser

Guarda el nombre del tema para usarlo más adelante en este tutorial. En este ejemplo, el nombre del tema es C=US, ST=New-York, L=New York City, O=MongoDB, CN=myUser.

3

Conecta mongosh a tu conjunto de réplicas usando las siguientes opciones:

mongosh "mongodb://mongo0.example.com:27017,mongo1.example.com:27017,mongo2.example.com:27017" \
--tls \
--tlsCAFile /etc/ssl/mongodb/ca.pem \
--tlsCertificateKeyFile /etc/ssl/mongodb/client.pem
  • --tls Habilita el cifrado TLS para la conexión.

  • --tlsCAFile se establece en el certificado CA que firmó los certificados mongosh del servidor para que pueda verificar la conexión del servidor.

  • --tlsCertificateKeyFile presenta el certificado de cliente y la clave privada que el servidor utiliza para autenticar su conexión con X.509.

Esto te conecta a tu implementación de MongoDB a través de TLS.

4

Utilice el método para autenticarse con su nombre de usuario y contraseña de db.auth() administrador.

5

Cree un usuario en la $external base de datos que corresponda al nombre del sujeto de su certificado de cliente con el db.createUser() método. Reemplace el nombre de usuario con el sujeto de su certificado de cliente que identificó previamente:

db.getSiblingDB("$external").runCommand({
createUser: "C=US, ST=New-York, L=New York City, O=MongoDB, CN=myUser",
roles: [
{ role: "readWriteAnyDatabase", db: "admin" }
]
})

Después de crear un usuario, utilice el método para autenticarse en db.auth() la $external base de datos mediante509 X.:

db.getSiblingDB("$external").auth({
mechanism: "MONGODB-X509",
user: "C=US, ST=New-York, L=New York City, O=MongoDB, CN=myUser"
})
6

Ejecute lo siguiente para confirmar su estado de autenticación:

db.adminCommand({ connectionStatus: 1 })

Confirme que authInfo.authenticatedUsers incluye al usuario esperado.

Después de completar este tutorial, mongosh se conecta a su conjunto de réplicas a través de una conexión TLS cifrada, autenticada con SCRAM o X.509.

Volver

Configurar en su implementación

En esta página