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 Ajustes)
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.
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.modeestablecidoallowTLSen. ElallowTLSajuste 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
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, 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.
Configure todos los clientes para que usen TLS/SSL.Consulte Configuración de TLS/SSL para clientes.
Para cada nodo de un clúster, use el comando para
setParameteractualizartlsModepreferTLSa. []1 ConpreferTLScomo su, el nodo acepta conexiones entrantes tanto TLS/SSL como no TLS/no SSL, y sus conexiones a otros servidores usan TLS/SSL. Pornet.tls.modeejemplo: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.
Para cada nodo del clúster, use el comando para
setParameteractualizartlsModerequireTLSa. []1 ConrequireTLScomo su, el nodo rechazará cualquier conexión que no sea TLS/SSL. Pornet.tls.modeejemplo: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 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.
Para cada nodo de un clúster, inicie el nodo con la opción
--sslModede línea de comandos o la opción del archivo de configuraciónnet.ssl.modeestablecidaallowSSLen. LaallowSSLopció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
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, 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.
Configure todos los clientes para que usen TLS/SSL.Consulte Configuración de 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 deberían utilizar 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] | 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:
|