Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Apéndice B - Certificados de Servidor OpenSSL para Pruebas de Implementaciones Autogestionadas

Advertencia

Descargo de responsabilidad

Esta página se proporciona para únicamente con fines de prueba y los certificados son únicamente para fines de prueba.

El siguiente tutorial proporciona algunos pasos básicos para crear certificados de prueba X.509:

  • No uses estos certificados para producción. En su lugar, siga sus políticas de seguridad.

  • Para obtener información sobre OpenSSL, consulte la documentación oficial de OpenSSL. Aunque este tutorial utiliza OpenSSL, no debe considerarse una referencia oficial sobre OpenSSL.

El procedimiento descrito en esta página utiliza el certificado y la clave de autoridad intermedia test mongodb-test-ia.crt y mongodb-test-ia.key creados en Apéndice A - Certificado CA de OpenSSL para pruebas de implementaciones autogestionadas .

El siguiente procedimiento describe los pasos para crear certificados de prueba para los servidores de MongoDB. Para obtener los pasos para crear certificados de prueba para clientes de MongoDB, consulta Anexo C - Certificados de cliente OpenSSL para pruebas en despliegues autogestionados.

  1. Crear un archivo de configuración de test openssl-test-server.cnf para su servidor con el siguiente contenido:

    # NOT FOR PRODUCTION USE. OpenSSL configuration file for testing.
    [ req ]
    default_bits = 4096
    default_keyfile = myTestServerCertificateKey.pem ## The default private key file name.
    default_md = sha256
    distinguished_name = req_dn
    req_extensions = v3_req
    [ v3_req ]
    subjectKeyIdentifier = hash
    basicConstraints = CA:FALSE
    keyUsage = critical, digitalSignature, keyEncipherment
    nsComment = "OpenSSL Generated Certificate for TESTING only. NOT FOR PRODUCTION USE."
    extendedKeyUsage = serverAuth, clientAuth
    subjectAltName = @alt_names
    [ alt_names ]
    DNS.1 = ##TODO: Enter the DNS names. The DNS names should match the server names.
    DNS.2 = ##TODO: Enter the DNS names. The DNS names should match the server names.
    IP.1 = ##TODO: Enter the IP address.
    IP.2 = ##TODO: Enter the IP address.
    [ req_dn ]
    countryName = Country Name (2 letter code)
    countryName_default = TestServerCertificateCountry
    countryName_min = 2
    countryName_max = 2
    stateOrProvinceName = State or Province Name (full name)
    stateOrProvinceName_default = TestServerCertificateState
    stateOrProvinceName_max = 64
    localityName = Locality Name (eg, city)
    localityName_default = TestServerCertificateLocality
    localityName_max = 64
    organizationName = Organization Name (eg, company)
    organizationName_default = TestServerCertificateOrg
    organizationName_max = 64
    organizationalUnitName = Organizational Unit Name (eg, section)
    organizationalUnitName_default = TestServerCertificateOrgUnit
    organizationalUnitName_max = 64
    commonName = Common Name (eg, YOUR name)
    commonName_max = 64
  2. En la sección [alt_names], ingresa los nombres de DNS y/o direcciones IP apropiados para el servidor MongoDB. Puede especificar varios nombres DNS para un servidor MongoDB.

    Para los identificadores SAN OpenSSL, MongoDB admite:

    • Nombres DNS y/u

    • Campos de dirección IP

  3. opcional. Puedes actualizar los valores por defecto del nombre distinguido (DN).

Tip

  • Especifique un valor no vacío para al menos uno de los siguientes atributos: Organización (O), la Unidad Organizacional (OU) o el Componente de Dominio (DC).

  • Al crear certificados de servidor de prueba para la autenticación de membresía interna, los siguientes atributos, si se especifican, deben coincidir exactamente en los certificados de los nodos: organización (O), unidad organizativa (OU), el componente de dominio (DC).

    Para más información sobre los requisitos de autenticación de membresía interna, consulta autenticación de membresía.

Importante

Antes de continuar, asegúrese de haber ingresado los nombres DNS apropiados en la sección [alt_names] del archivo de configuración openssl-test-server.cnf.

  1. Crea el archivo de clave test mongodb-test-server1.key.

    openssl genrsa -out mongodb-test-server1.key 4096
  2. Cree la solicitud de firma de certificado de mongodb-test-server1.csr prueba.

    Cuando se soliciten valores de nombre distinguido, ingrese los valores apropiados para su certificado de prueba:

    • Especifique un valor no vacío para al menos uno de los siguientes atributos: Organización (O), la Unidad Organizacional (OU) o el Componente de Dominio (DC).

    • Al crear certificados de servidor de prueba para la autenticación de membresía interna, los siguientes atributos, si se especifican, deben coincidir exactamente en los certificados de los nodos: organización (O), unidad organizativa (OU), el componente de dominio (DC).

    openssl req -new -key mongodb-test-server1.key -out mongodb-test-server1.csr -config openssl-test-server.cnf
  3. Crea el en el certificado del servidor de prueba mongodb-test-server1.crt.

    openssl x509 -sha256 -req -days 365 -in mongodb-test-server1.csr -CA mongodb-test-ia.crt -CAkey mongodb-test-ia.key -CAcreateserial -out mongodb-test-server1.crt -extfile openssl-test-server.cnf -extensions v3_req
  4. Crea el archivo PEM prueba para el servidor.

    cat mongodb-test-server1.crt mongodb-test-server1.key > test-server1.pem

    Puede usar el archivo PEM de prueba al configurar un mongod o un mongos para pruebas TLS/SSL. Por ejemplo:

    Ejemplo

    mongod --tlsMode requireTLS --tlsCertificateKeyFile test-server1.pem --tlsCAFile test-ca.pem
    En macOS,

    Si está probando con Acceso a Llaveros para gestionar certificados, cree un archivo pkcs-12 para añadir a Acceso a Llaveros en vez de un archivo PEM:

    openssl pkcs12 -export -out test-server1.pfx -inkey mongodb-test-server1.key -in mongodb-test-server1.crt -certfile mongodb-test-ia.crt

    Una vez añadido a Acceso a Llaveros, en lugar de especificar el archivo de la clave del certificado, puedes usar el --tlsCertificateSelector para especificar el certificado que deseas utilizar. Si el archivo CA también está en Acceso a Llaveros, puedes omitir --tlsCAFile también.

    mongod --tlsMode requireTLS --tlsCertificateSelector subject="<TestServerCertificateCommonName>"

Volver

OpenSSL CA