Apêndice B - Certificados de servidor OpenSSL para testar implementações autogerenciadas
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.cnf
para 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
mongod
ou ummongos
para 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
--tlsCertificateSelector
para 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>"