Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Apéndice A - Certificado CA de OpenSSL para pruebas de implementaciones autogestionadas

Advertencia

Descargo de responsabilidad

Esta página se proporciona para solo para fines de prueba y los certificados son solo para fines de prueba.

El siguiente tutorial proporciona algunas directrices 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 oficial OpenSSL Docs. Aunque este tutorial utiliza OpenSSL, el material no debe considerarse como una referencia autorizada sobre OpenSSL.

Los siguientes procedimientos describen los pasos para crear un archivo CA PEM de prueba. El procedimiento crea tanto el archivo PEM de la CA como el certificado de autoridad intermedia y los archivos clave para firmar los certificados de prueba del servidor/cliente.

  1. Crea un archivo de configuración openssl-test-ca.cnf con el siguiente contenido:

    # NOT FOR PRODUCTION USE. OpenSSL configuration file for testing.
    # For the CA policy
    [ policy_match ]
    countryName = match
    stateOrProvinceName = match
    organizationName = match
    organizationalUnitName = optional
    commonName = supplied
    emailAddress = optional
    [ req ]
    default_bits = 4096
    default_keyfile = myTestCertificateKey.pem ## The default private key file name.
    default_md = sha256 ## Use SHA-256 for Signatures
    distinguished_name = req_dn
    req_extensions = v3_req
    x509_extensions = v3_ca # The extensions to add to the self signed cert
    [ 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
    [ req_dn ]
    countryName = Country Name (2 letter code)
    countryName_default =
    countryName_min = 2
    countryName_max = 2
    stateOrProvinceName = State or Province Name (full name)
    stateOrProvinceName_default = TestCertificateStateName
    stateOrProvinceName_max = 64
    localityName = Locality Name (eg, city)
    localityName_default = TestCertificateLocalityName
    localityName_max = 64
    organizationName = Organization Name (eg, company)
    organizationName_default = TestCertificateOrgName
    organizationName_max = 64
    organizationalUnitName = Organizational Unit Name (eg, section)
    organizationalUnitName_default = TestCertificateOrgUnitName
    organizationalUnitName_max = 64
    commonName = Common Name (eg, YOUR name)
    commonName_max = 64
    [ v3_ca ]
    # Extensions for a typical CA
    subjectKeyIdentifier=hash
    basicConstraints = critical,CA:true
    authorityKeyIdentifier=keyid:always,issuer:always
  2. opcional. Puedes actualizar los valores por defecto del nombre distinguido (DN).

  1. Cree el archivo de clave CA test mongodb-test-ca.key.

    openssl genrsa -out mongodb-test-ca.key 4096

    Tip

    Esta llave privada se usa para generar certificados válidos para la CA. Aunque esta llave privada, como todos los archivos en este apéndice, está destinada únicamente a fines de prueba, se recomienda aplicar buenas prácticas de seguridad y proteger este archivo de llave.

  2. Crea el certificado CA mongod-test-ca.crt utilizando el archivo de clave generado. Cuando se te soliciten los valores del nombre distinguido, introduce los valores apropiados para tu certificado CA de prueba.

    openssl req -new -x509 -days 1826 -key mongodb-test-ca.key -out mongodb-test-ca.crt -config openssl-test-ca.cnf
  3. Crea la llave privada para el certificado intermedio.

    openssl genrsa -out mongodb-test-ia.key 4096

    Tip

    Esta llave privada se utiliza para generar certificados válidos para la autoridad intermedia. Aunque esta clave privada, como todos los archivos de este apéndice, está destinada únicamente a pruebas, deberás seguir buenas prácticas de seguridad y proteger este archivo de clave.

  4. Cree la solicitud de firma de certificado para el certificado intermedio. Cuando se te pidan valores de nombre distinguido, ingresa los valores adecuados para tu certificado de Autoridad Intermedia de prueba.

    openssl req -new -key mongodb-test-ia.key -out mongodb-test-ia.csr -config openssl-test-ca.cnf
  5. Cree el certificado intermedio mongodb-test-ia.crt.

    openssl x509 -sha256 -req -days 730 -in mongodb-test-ia.csr -CA mongodb-test-ca.crt -CAkey mongodb-test-ca.key -set_serial 01 -out mongodb-test-ia.crt -extfile openssl-test-ca.cnf -extensions v3_ca
  6. Crea el archivo PEM prueba de la CA a partir del certificado prueba de la CA mongod-test-ca.crt y el certificado intermedio prueba mongodb-test-ia.crt.

    cat mongodb-test-ia.crt mongodb-test-ca.crt > test-ca.pem

Puedes usar el archivo PEM de prueba al configurar mongod, mongos o mongosh para pruebas de TLS/SSL.

Puede usar la autoridad intermedia de prueba para firmar los certificados de prueba tanto para los servidores como para los clientes. Una sola autoridad debe emitir los certificados tanto para el cliente como para el servidor.

Volver

Apéndice