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 y TLS 1.1 en sistemas donde TLS 1.2+ está disponible.
Procedimiento (usando tls Configuración)
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 de un clúster de MongoDB que no utiliza cifrado TLS/SSL a uno que utiliza solo cifrado TLS/SSL, utiliza el siguiente proceso de actualización continua.
Nota
Los procedimientos de esta sección utilizan la configuración/opción tls. Para los procedimientos que usan sus ssl alias, ver 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.
Para cada nodo de un clúster, inicie el nodo con la opción de línea de comandos
--tlsModeo la opción del archivo de configuraciónnet.tls.modeestablecido enallowTLS. La configuraciónallowTLSpermite que el nodo acepte tanto TLS/SSL como conexiones entrantes no TLS/no SSL. Sus conexiones con otros servidores no utilizan TLS/SSL. Incluye otras opciones TLS/SSL [2] así como cualquier otra opción que sea necesaria para tu configuración específica.Nota
mongodymongosse 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_iponet.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, incluye la siguiente configuración 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.
Cambia todos los clientes para que utilicen TLS/SSL. Consulta la Configuración TLS/SSL para clientes.
Para cada nodo de un clúster, utiliza el comando
setParameterpara actualizar eltlsModeapreferTLS. [1] ConpreferTLScomo sunet.tls.mode, el nodo acepta tanto conexiones entrantes TLS/SSL como no TLS/no SSL, y sus conexiones a otros servidores usan TLS/SSL. Por ejemplo:db.adminCommand( { setParameter: 1, tlsMode: "preferTLS" } ) Actualice todos los nodos del clúster a estas configuraciones.
En este punto, todas las conexiones deben estar utilizando TLS/SSL.
Para cada nodo del clúster, use el comando
setParameterpara actualizar eltlsModearequireTLS. [1] ConrequireTLScomo sunet.tls.mode, el nodo rechazará cualquier conexión que no sea TLS/SSL. Por ejemplo:db.adminCommand( { setParameter: 1, tlsMode: "requireTLS" } ) 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.
Procedimiento (usando ssl configuraciones)
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 de un clúster de MongoDB que no utiliza cifrado TLS/SSL a uno que utiliza solo cifrado TLS/SSL, utiliza el siguiente proceso de actualización continua.
Nota
Los procedimientos en esta sección usan la configuración/opción ssl. Para procedimientos que utilizan sus alias tls, consulta Procedimiento (usando la configuración tls).
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 cada nodo de un clúster, inicia el nodo con la opción de la línea de comandos
--sslModeo la opción del archivo de configuraciónnet.ssl.modeestablecida enallowSSL. La configuraciónallowSSLpermite que el nodo acepte tanto conexiones entrantes TLS/SSL como no TLS/no SSL. Sus conexiones con otros servidores no utilizan TLS/SSL. Incluye otras opciones de TLS/SSL [2] así como cualquier otra opción que se requiera para tu configuración específica.Nota
mongodymongosse 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_iponet.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, incluye la siguiente configuración 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.
Cambia todos los clientes para que utilicen TLS/SSL. Consulta la Configuración TLS/SSL para clientes.
Para cada nodo de un clúster, use el comando para
setParameteractualizarsslModepreferSSLa. []1 ConpreferSSLcomonet.ssl.modesu, 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 deben estar utilizando TLS/SSL.
Para cada nodo del clúster, use el comando
setParameterpara actualizar elsslModearequireSSL. [1] ConrequireSSLcomonet.ssl.mode, el nodo rechaza cualquier conexión que no sea TLS/SSL. Por ejemplo:db.adminCommand( { setParameter: 1, sslMode: "requireSSL" } ) 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] | (1, 2, 3, 4) Como alternativa a usar el comando setParameter, también puedes reiniciar los nodos con las opciones y valores TLS/SSL apropiados. |
| [2] | (1, 2) Puede utilizar almacenes de certificados SSL del sistema para Windows y macOS. Para usar el almacén de certificados SSL del sistema, use:
|