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 A - Certificado CA de 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 algunas pautas para crear 509 certificados de prueba X.:

  • 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.

Los siguientes procedimientos describen los pasos para crear un archivo CA PEM de prueba. El procedimiento crea tanto el archivo CA PEM como un certificado de autoridad intermedia y archivos de clave para firmar certificados de prueba de 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 clave privada se utiliza para generar certificados válidos para la CA. Aunque esta clave privada, al igual que todos los archivos de este apéndice, está destinada únicamente a fines de prueba, se recomienda adoptar buenas prácticas de seguridad y proteger este archivo de clave.

  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 le soliciten los valores de nombre distinguido, introduzca los valores correspondientes para su 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. Cree el archivo PEM de CA de prueba a partir del mongod-test-ca.crt certificado de CA de prueba y el certificado intermedio de mongodb-test-ia.crt prueba.

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

Puede utilizar 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