Docs Menu
Docs Home
/ /
/ / /

Actualizar un clúster para usar TLS/SSL

El servidor MongoDB admite la escucha de conexiones cifradas y no cifradas con TLS/SSL en el mismo puerto TCP. Esto permite que las actualizaciones de clústeres MongoDB utilicen conexiones cifradas con TLS/SSL.

Nota

MongoDB deshabilita el soporte para el cifrado TLS 1.0 en sistemas donde TLS 1.1+ está disponible.

Importante

Una descripción completa de los certificados TLS/SSL, PKI (Infraestructura de Llave Pública) y la Autoridad de Certificación está fuera del alcance de este documento. Esta página asume conocimientos previos de TLS/SSL, así como el acceso a certificados válidos.

Para actualizar desde un clúster MongoDB que no utiliza cifrado TLS/SSL a uno que utiliza solo cifrado TLS/SSL, utilice el siguiente proceso de actualización continua.

Nota

Los procedimientos de esta sección utilizan la configuración/opción tls. Para conocer los procedimientos que utilizan sus alias ssl, consulte Procedimiento (utilizando la configuración ssl).

Los ajustes/opciones de tls proporcionan una funcionalidad idéntica a las opciones de ssl ya que MongoDB siempre ha admitido TLS 1.0 y posteriores.

  1. Para cada nodo de un clúster, inicie el nodo con la opción de línea de comandos --tlsMode o la opción del archivo de configuración net.tls.mode establecido allowTLS en. El allowTLS ajuste permite que el nodo acepte conexiones entrantes tanto TLS/SSL como no TLS/no SSL. Sus conexiones a otros servidores no utilizan TLS/SSL. Incluya otras opciones de TLS/SSL [],2 así como cualquier otra opción necesaria para su configuración específica.

    Nota

    mongod y mongos se enlazan a localhost por defecto. Si los miembros de la implementación se ejecutan en hosts diferentes o si se desea que clientes remotos se conecten a la implementación, se debe especificar --bind_ip o net.bindIp.

    Por ejemplo:

    mongod --replSet <name> --tlsMode allowTLS --tlsCertificateKeyFile <TLS/SSL certificate and key file> --tlsCAFile <path to root CA PEM file> <additional options>

    Para especificar estas opciones en el archivo de configuración, incluya las siguientes configuraciones en el archivo:

    net:
    tls:
    mode: allowTLS
    certificateKeyFile: <path to TLS/SSL certificate and key PEM file>
    CAFile: <path to root CA PEM file>

    Actualice todos los nodos del clúster a estas configuraciones.

  2. Configure todos los clientes para que usen TLS/SSL.Consulte Configuración de TLS/SSL para clientes.

  3. Para cada nodo de un clúster, use el comando para setParameter actualizar tlsMode preferTLSa. []1 Con preferTLS como su, el nodo acepta conexiones entrantes tanto TLS/SSL como no TLS/no SSL, y sus conexiones a otros servidores usan TLS/SSL. Por net.tls.mode ejemplo:

    db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } )

    Actualice todos los nodos del clúster a estas configuraciones.

    En este punto, todas las conexiones deberían utilizar TLS/SSL.

  4. Para cada nodo del clúster, use el comando para setParameter actualizar tlsMode requireTLSa. []1 Con requireTLS como su, el nodo rechazará cualquier conexión que no sea TLS/SSL. Por net.tls.mode ejemplo:

    db.adminCommand( { setParameter: 1, tlsMode: "requireTLS" } )
  5. Después de actualizar todos los nodos, edite el archivo de configuración con las configuraciones TLS/SSL adecuadas para garantizar que en los reinicios posteriores, el clúster utilice TLS/SSL.

Importante

Una descripción completa de los certificados TLS/SSL, PKI (Infraestructura de Llave Pública) y la Autoridad de Certificación está fuera del alcance de este documento. Esta página asume conocimientos previos de TLS/SSL, así como el acceso a certificados válidos.

Para actualizar desde un clúster MongoDB que no utiliza cifrado TLS/SSL a uno que utiliza solo cifrado TLS/SSL, utilice el siguiente proceso de actualización continua.

Nota

Los procedimientos de esta sección utilizan la configuración/opción. Para conocer los procedimientos ssl que utilizan sus tls alias, consulte Procedimiento (Uso de la tls configuración).

Los ajustes/opciones de tls proporcionan una funcionalidad idéntica a las opciones de ssl ya que MongoDB siempre ha admitido TLS 1.0 y posteriores.

  1. Para cada nodo de un clúster, inicie el nodo con la opción --sslMode de línea de comandos o la opción del archivo de configuración net.ssl.mode establecida allowSSL en. La allowSSL opción permite que el nodo acepte conexiones entrantes tanto TLS/SSL como no TLS/no SSL. Sus conexiones a otros servidores no utilizan TLS/SSL. Incluya otras opciones TLS/SSL [],2 así como cualquier otra opción necesaria para su configuración específica.

    Nota

    mongod y mongos se enlazan a localhost por defecto. Si los miembros de la implementación se ejecutan en hosts diferentes o si se desea que clientes remotos se conecten a la implementación, se debe especificar --bind_ip o net.bindIp.

    Por ejemplo:

    mongod --replSet <name> --sslMode allowSSL --sslPEMKeyFile <path to TLS/SSL Certificate and key PEM file> --sslCAFile <path to root CA PEM file> <additional options>

    Para especificar estas opciones en el archivo de configuración, incluya las siguientes configuraciones en el archivo:

    net:
    ssl:
    mode: <allowSSL>
    PEMKeyFile: <path to TLS/SSL certificate and key PEM file>
    CAFile: <path to root CA PEM file>

    Actualice todos los nodos del clúster a estas configuraciones.

  2. Configure todos los clientes para que usen TLS/SSL.Consulte Configuración de TLS/SSL para clientes.

  3. Para cada nodo de un clúster, use el comando para setParameter actualizar sslMode preferSSLa. []1 Con preferSSL como net.ssl.mode su, el nodo acepta conexiones entrantes tanto TLS/SSL como no TLS/no SSL, y sus conexiones a otros servidores usan TLS/SSL. Por ejemplo:

    db.adminCommand( { setParameter: 1, sslMode: "preferSSL" } )

    Actualice todos los nodos del clúster a estas configuraciones.

    En este punto, todas las conexiones deberían utilizar TLS/SSL.

  4. Para cada nodo del clúster, use el comando setParameter para actualizar el sslMode a requireSSL. [1] Con requireSSL como net.ssl.mode, el nodo rechaza cualquier conexión que no sea TLS/SSL. Por ejemplo:

    db.adminCommand( { setParameter: 1, sslMode: "requireSSL" } )
  5. Después de actualizar todos los nodos, edite el archivo de configuración con las configuraciones TLS/SSL adecuadas para garantizar que en los reinicios posteriores, el clúster utilice TLS/SSL.

[1]12(,,, 3 4) Como alternativa al uso del comando, también puede reiniciar los nodos con las opciones y valores TLS/SSL setParameter adecuados.
[2](,1 2) Puede usar almacenes de certificados SSL del sistema para Windows y macOS. Para usar el almacén de certificados SSL del sistema, utilice:
  • net.tls.certificateSelector (o la opción de línea de --tlsCertificateSelector comandos) en lugar de (o la opción de línea de comandos net.tls.certificateKeyFile ``--certificateKeyFile``).
  • net.ssl.certificateSelector (o la opción de línea de comandos --sslCertificateSelector) en lugar de net.ssl.PEMKeyFile (o la opción de línea de comandos ``--sslPEMKeyFile``).
Al utilizar el almacén de certificados SSL del sistema, se emplea OCSP (Protocolo de estado de certificados en línea) para validar el estado de revocación de los certificados.

Volver

Configurar Clientes