Aviso
Aviso
Esta página é fornecida apenas parafins de teste e os certificados são apenas para fins de teste.
O tutorial a seguir fornece algumas etapas básicas para criar certificados de teste x.509:
Não use esses certificados para produção. Em vez disso, siga suas políticas de segurança.
Para obter informações sobre OpenSSL, consulte os documentos oficiais do OpenSSL. Embora este tutorial use OpenSSL, o material não deve ser considerado uma referência oficial no OpenSSL.
Pré-requisitos
O procedimento descrito nesta página usa o certificado de autoridade intermediária de teste e as chaves mongodb-test-ia.crt e mongodb-test-ia.key criadas no Apêndice A - Certificado OpenSSL CA para testar implantações autogerenciadas .
Procedimento
O procedimento a seguir descreve as etapas para criar certificados de teste para servidores MongoDB . Para obter as etapas para criar certificados de teste para clientes MongoDB , consulte o Apêndice C - Certificados de cliente OpenSSL para testar implementações autogerenciadas.
A. Criar o arquivo de configuração OpenSSL
Crie um arquivo de configuração de teste
openssl-test-server.cnfpara seu servidor com o seguinte conteúdo:# 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 Na seção
[alt_names], insira os nomes DNS e/ou endereços IP apropriados para o servidor MongoDB . Você pode especificar vários nomes DNS para um servidor MongoDB .Para identificadores OpenSSL SAN, o MongoDB suporta:
Nomes de DNS e/ou
Campos de endereço IP
Opcional. Você pode atualizar os valores padrão de nome distinto (DN).
Dica
Especifique um valor não vazio para pelo menos um dos seguintes atributos: organização (
O), Unidade Organizacional (OU) ou Componente de Domínio (DC).Ao criar certificados de servidor de teste para autenticação de associação interna, os seguintes atributos, se especificados, devem corresponder exatamente nos certificados de membro: Organização (
O), Unidade organizacional (OU), o componente de domínio (DC).Para obter mais informações sobre os requisitos de autenticação de associação interna, consulte autenticação de associação.
B. Gerar o arquivo PEM de teste para o servidor
Importante
Antes de prosseguir, certifique-se de que inseriu os nomes de DNS apropriados na seção [alt_names] do arquivo de configuração openssl-test-server.cnf.
Crie o arquivo de chave de teste
mongodb-test-server1.key.openssl genrsa -out mongodb-test-server1.key 4096 Crie a solicitação de assinatura de certificado de teste
mongodb-test-server1.csr.Quando solicitado para valores de nome diferenciado, insira os valores apropriados para o certificado de teste:
Especifique um valor não vazio para pelo menos um dos seguintes atributos: organização (
O), Unidade Organizacional (OU) ou Componente de Domínio (DC).Ao criar certificados de servidor de teste para autenticação de associação interna, os seguintes atributos, se especificados, devem corresponder exatamente nos certificados de membro: Organização (
O), Unidade organizacional (OU), o componente de domínio (DC).
openssl req -new -key mongodb-test-server1.key -out mongodb-test-server1.csr -config openssl-test-server.cnf Crie o certificado do servidor de teste
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 Crie o arquivo PEM de teste para o servidor.
cat mongodb-test-server1.crt mongodb-test-server1.key > test-server1.pem Você pode usar o arquivo PEM de teste ao configurar um
mongodou ummongospara teste de TLS/SSL. Por exemplo:Exemplo
mongod --tlsMode requireTLS --tlsCertificateKeyFile test-server1.pem --tlsCAFile test-ca.pem - No macOS,
Se você estiver testando com o Keychain Access para managed certificados, crie um arquivo pkcs-12 para adicionar ao Keychain Access em vez de um arquivo PEM:
openssl pkcs12 -export -out test-server1.pfx -inkey mongodb-test-server1.key -in mongodb-test-server1.crt -certfile mongodb-test-ia.crt Uma vez adicionado ao Keychain Access, em vez de especificar o arquivo de chave do certificado, você pode usar o
--tlsCertificateSelectorpara especificar o certificado a ser usado. Se o arquivo CA também estiver no Keychain Access, você também poderá omitir--tlsCAFile.mongod --tlsMode requireTLS --tlsCertificateSelector subject="<TestServerCertificateCommonName>"