Advertencia
Descargo de responsabilidad
Esta página está destinada a únicamente con fines de prueba y los certificados son únicamente para fines de prueba.
El siguiente tutorial proporciona algunos pasos básicos para crear 509 certificados de prueba X.:
No utilice 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.
Requisito previo
El procedimiento descrito en esta página utiliza el certificado de autoridad intermedia de prueba y la clave mongodb-test-ia.crt y mongodb-test-ia.key creada en Apéndice A - Certificado CA OpenSSL para probar implementaciones autogestionadas.
Procedimiento
El siguiente procedimiento describe los pasos para crear certificados de prueba para servidores MongoDB. Para obtener información sobre cómo crear certificados de prueba para clientes MongoDB, consulte el Apéndice C: Certificados de cliente OpenSSL para probar implementaciones autogestionadas.
A. Cree el archivo de configuración de OpenSSL
Crear un archivo de configuración de prueba
openssl-test-server.cnfpara 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 En la sección
[alt_names], introduzca los nombres DNS o las direcciones IP correspondientes para el servidor MongoDB. Puede especificar varios nombres DNS para un servidor MongoDB.Para los identificadores SAN OpenSSL, MongoDB admite:
Nombres DNS y/o
Campos de dirección IP
Opcional. Puede actualizar los valores predeterminados del nombre distinguido (DN).
Tip
Especifique un valor no vacío para al menos uno de los siguientes atributos: Organización (
O), Unidad organizativa (OU) o 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 todos los certificados de miembro: Organización
O(), Unidad organizativa (),OUComponente de dominioDC().Para más información sobre los requisitos de autenticación de membresía interna, consulta autenticación de membresía.
B. Generar el archivo PEM de prueba para el servidor
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.
Cree el archivo de clave de
mongodb-test-server1.keyprueba.openssl genrsa -out mongodb-test-server1.key 4096 Cree la solicitud de firma de certificado de
mongodb-test-server1.csrprueba.Cuando se le soliciten valores de nombre distintivo, 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), Unidad organizativa (OU) o 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 todos los certificados de miembro: Organización
O(), Unidad organizativa (),OUComponente de dominioDC().
openssl req -new -key mongodb-test-server1.key -out mongodb-test-server1.csr -config openssl-test-server.cnf Cree el certificado del servidor de
mongodb-test-server1.crtprueba.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 Cree el archivo PEM de 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
mongodo unmongospara pruebas TLS/SSL. Por ejemplo:Ejemplo
mongod --tlsMode requireTLS --tlsCertificateKeyFile test-server1.pem --tlsCAFile test-ca.pem - En macOS,
Si está realizando pruebas con Keychain Access para administrar certificados, cree un12 archivo pkcs- para agregarlo a Keychain Access en lugar 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 clave del certificado, puede usar para
--tlsCertificateSelectorespecificar el certificado que se usará. Si el archivo de CA también está en Acceso a Llaveros,--tlsCAFiletambién puede omitir.mongod --tlsMode requireTLS --tlsCertificateSelector subject="<TestServerCertificateCommonName>"