Docs Menu
Docs Home
/ /
Interno
/ / / / /

Utilice el certificado X.509 para la autenticación de membresía con MongoDB autogestionado

MongoDB admite la autenticación de certificado X.509 para su uso con un servidor seguro. Conexión TLS/SSL. Los miembros del clúster fragmentado y del conjunto de réplicas pueden usar509 certificados x. para verificar su pertenencia al clúster o al conjunto de réplicas en lugar de usar archivos de claves. La autenticación de la pertenencia es un proceso interno.

Nota

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

Al habilitar la autenticación interna, también se habilita el control de acceso basado en roles en implementaciones autogestionadas. Los clientes deben autenticarse como usuarios para conectarse y realizar operaciones en la implementación.

Importante

Una descripción completa de los certificados TLS/SSL, PKI (Infraestructura de Clave Pública), en particular los certificados X.509, y la autoridad de certificación queda fuera del alcance de este documento. Este tutorial presupone conocimientos previos de TLS/SSL y acceso a certificados X.509 válidos.

Nota

Debe tener certificados X.509 válidos.

Si lo especifica --tlsAllowInvalidCertificates net.tls.allowInvalidCertificates: trueo, un certificado no válido solo es suficiente para establecer una conexión TLS, pero es insuficiente para la autenticación.

Utilice certificados de miembro para verificar la pertenencia a un clúster fragmentado o a un conjunto de réplicas. Los certificados de miembro se almacenan en y. Requisitos de los certificados de net.tls.clusterFile net.tls.certificateKeyFilemiembro:

  • Una única autoridad de certificación (CA) debe emitir todos los certificados x.509 para los miembros de un clúster fragmentado o un conjunto de réplicas.

  • El certificado509 x. no debe estar vencido.

    Nota

    mongod / mongos genera un registro de advertencia en la conexión si el certificado X.509 presentado caduca dentro de 30 días a partir de la hora del sistema host mongod/mongos.

  • El nombre distinguidoDN (), que se encuentra en el del certificado de subject miembro, debe especificar un valor no vacío para al menos uno de los siguientes atributos:

    • la organización (O)

    • la Unidad Organizativa (OU)

    • El componente del dominio (DC)

  • En implementaciones multiclúster, cada clúster debe usar un509 certificado miembro X. diferente. Cada certificado debe tener valores únicos en los campos de nombre distintivo O OU DC (DN), y.

    Si dos clústeres tienen certificados con los mismos valores DN, un servidor comprometido en un clúster puede autenticarse como miembro del otro.

  • Cada certificado de nodo de clúster debe tener Os, OUs y DCs idénticos en sus certificados net.tls.clusterFile y net.tls.certificateKeyFile. Esto también se aplica al valor tlsX509ClusterAuthDNOverride, si está configurado. El orden de los atributos no importa.

    A continuación, se muestra un ejemplo. Los dos DNa continuación tienen especificaciones coincidentes para O y OU, y DC no está especificado.

    CN=host1,OU=Dept1,O=MongoDB,ST=NY,C=US
    C=US, ST=CA, O=MongoDB, OU=Dept1, CN=host2

    El siguiente ejemplo es incorrecto porque los DNs no coinciden. Un DN tiene dos especificaciones de OU y el otro tiene solo una especificación de OU.

    CN=host1,OU=Dept1,OU=Sales,O=MongoDB
    CN=host2,OU=Dept1,O=MongoDB
  • El nombre común (CN) o una de las entradas del nombre alternativo del sujeto (SAN) deben coincidir con el nombre de host del servidor de los demás miembros del clúster. A partir de MongoDB 4.2, al comparar SAN, MongoDB puede comparar nombres DNS o direcciones IP. En versiones anteriores, MongoDB solo comparaba nombres DNS.

    Por ejemplo, los certificados de un clúster podrían tener los siguientes subject:

    subject= CN=<myhostname1>,OU=Dept1,O=MongoDB,ST=NY,C=US
    subject= CN=<myhostname2>,OU=Dept1,O=MongoDB,ST=NY,C=US
    subject= CN=<myhostname3>,OU=Dept1,O=MongoDB,ST=NY,C=US
  • Si el certificado utilizado como certificateKeyFile incluye extendedKeyUsage, el valor debe incluir clientAuth ("Autenticación de cliente web TLS") y serverAuth ("Autenticación de servidor web TLS").

    extendedKeyUsage = clientAuth, serverAuth
  • Si el certificado utilizado como clusterFile incluye extendedKeyUsage, el valor debe incluir clientAuth.

    extendedKeyUsage = clientAuth

Fuera de los procedimientos de actualización continua, cada componente de un conjunto de réplicas o un clúster fragmentado debe usar la misma --clusterAuthMode configuración para garantizar que pueda conectarse de forma segura a todos los demás componentes en la implementación.

Para las implementaciones de conjuntos de réplicas, esto incluye todos los mongod miembros del conjunto de réplicas.

Para implementaciones de clúster, esto incluye todas las instancias de mongod o mongos.

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.

Nota

Los procedimientos de esta sección utilizan la tls configuración/opción. Para conocer los procedimientos que utilizan los ssl alias obsoletos, consulte Usar opcionesssl de línea de comandos ().

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.

mongod --replSet <name> --tlsMode requireTLS --clusterAuthMode x509 --tlsClusterFile <path to membership certificate and key PEM file> --tlsCertificateKeyFile <path to TLS/SSL certificate and key file> --sslCAFile <path to root CA file> --bind_ip localhost,<hostname(s)|ip address(es)>

Importante

Para utilizar la autenticación X.509, se debe especificar --tlsCAFile o net.tls.CAFile a menos que utilice --tlsCertificateSelector o --net.tls.certificateSelector.

Incluya cualquier opción adicional, TLS/SSL o de otro tipo, que sea necesaria para su configuración específica. Para

security:
clusterAuthMode: x509
net:
tls:
mode: requireTLS
certificateKeyFile: <path to its TLS/SSL certificate and key file>
CAFile: <path to root CA PEM file to verify received certificate>
clusterFile: <path to its certificate key file for membership authentication>
bindIp: localhost,<hostname(s)|ip address(es)>

Importante

Para utilizar la autenticación X.509, se debe especificar --tlsCAFile o net.tls.CAFile a menos que utilice --tlsCertificateSelector o --net.tls.certificateSelector.

Incluye cualquier opción adicional, ya sea TLS/SSL u otra, que sea necesaria para tu configuración específica.

Para obtener más información,consulte Configurar mongod y mongos para TLS/SSL.

Nota

Los procedimientos de esta sección utilizan la ssl configuración/opción obsoleta. Para procedimientos que utilizan tls alias, consulte Usar opcionestls de línea de comandos ().

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.

Para especificar el certificado X.509 para la autenticación de miembros del clúster interno, agregue las opciones TLS/SSL adicionales --clusterAuthMode y --sslClusterFile, como en el siguiente ejemplo para un miembro de un conjunto de réplicas:

mongod --replSet <name> --sslMode requireSSL --clusterAuthMode x509 --sslClusterFile <path to membership certificate and key PEM file> --sslPEMKeyFile <path to TLS/SSL certificate and key PEM file> --sslCAFile <path to root CA PEM file> --bind_ip localhost,<hostname(s)|ip address(es)>

Importante

Para utilizar la autenticación X.509, se debe especificar --tlsCAFile o net.tls.CAFile a menos que utilice --tlsCertificateSelector o --net.tls.certificateSelector.

Incluye cualquier opción adicional, ya sea TLS/SSL u otra, que sea necesaria para tu configuración específica.

security:
clusterAuthMode: x509
net:
ssl:
mode: requireSSL
PEMKeyFile: <path to TLS/SSL certificate and key PEM file>
CAFile: <path to root CA PEM file>
clusterFile: <path to X.509 membership certificate and key PEM file>
bindIp: localhost,<hostname(s)|ip address(es)>

Importante

Para utilizar la autenticación X.509, se debe especificar --tlsCAFile o net.tls.CAFile a menos que utilice --tlsCertificateSelector o --net.tls.certificateSelector.

Incluye cualquier opción adicional, ya sea TLS/SSL u otra, que sea necesaria para tu configuración específica.

Para obtener más información,consulte Configurar mongod y mongos para TLS/SSL.

Para actualizar de la autenticación interna de archivo de claves a509 la autenticación interna X.,consulte Actualizar MongoDB autoadministrado de la autenticación de archivo de claves a la autenticación X..509

Para realizar una actualización continua de los certificados a nuevos certificados con diferentes,DN consulte Actualización continua de509 certificados X. que contienen un nuevo DN en clústeres autoadministrados.

Volver

Rotar claves de clúster particionados

En esta página