Apêndice C - Certificados de cliente 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
noApêndice A - Certificado OpenSSL CA para testar implantações autogerenciadas.
Procedimento
O procedimento a seguir descreve as etapas para criar certificados de teste para clientes MongoDB . Para obter as etapas para criar certificados de teste para servidores MongoDB , consulte o Apêndice B - Certificados de servidor OpenSSL para testar implementações autogerenciadas.
A. Criar o arquivo de configuração OpenSSL
Crie um arquivo de configuração de teste
openssl-test-client.cnf
para seu cliente com o seguinte conteúdo:# NOT FOR PRODUCTION USE. OpenSSL configuration file for testing. [ req ] default_bits = 4096 default_keyfile = myTestClientCertificateKey.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 [ 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 = TestClientCertificateState stateOrProvinceName_max = 64 localityName = Locality Name (eg, city) localityName_default = TestClientCertificateLocality localityName_max = 64 organizationName = Organization Name (eg, company) organizationName_default = TestClientCertificateOrg organizationName_max = 64 organizationalUnitName = Organizational Unit Name (eg, section) organizationalUnitName_default = TestClientCertificateOrgUnit organizationalUnitName_max = 64 commonName = Common Name (eg, YOUR name) commonName_max = 64 Opcional. Você pode atualizar os valores padrão de nome diferenciado (nome diferenciado). Certifique-se de que os certificados do cliente sejam diferentes dos certificados do servidor em relação a pelo menos um dos seguintes atributos: Organização (
O
), Unidade Organizacional (OU
) ou Componente de Domínio (DC
).
B. Gerar o arquivo PEM de teste para o cliente
Crie o arquivo de chave de teste
mongodb-test-client.key
.openssl genrsa -out mongodb-test-client.key 4096 Crie a solicitação de assinatura de certificado de teste
mongodb-test-client.csr
. Quando solicitado para valores de nome distinto, insira os valores apropriados para o certificado de teste :Importante
O assunto do certificado do cliente deve diferir de um assunto de certificado de servidor com relação a pelo menos um dos seguintes atributos: organização (O), Unidade Organizacional (OU) ou Componente de Domínio (DC).
openssl req -new -key mongodb-test-client.key -out mongodb-test-client.csr -config openssl-test-client.cnf Crie o certificado do cliente de teste
mongodb-test-client.crt
.openssl x509 -sha256 -req -days 365 -in mongodb-test-client.csr -CA mongodb-test-ia.crt -CAkey mongodb-test-ia.key -CAcreateserial -out mongodb-test-client.crt -extfile openssl-test-client.cnf -extensions v3_req Crie o arquivo PEM de teste para o cliente.
cat mongodb-test-client.crt mongodb-test-client.key > test-client.pem Você pode usar o arquivo PEM de teste para configurar
mongosh
para teste TLS/SSL. Por exemplo, para conectar a ummongod
ou ummongos
:Exemplo
Inclua as seguintes opções para o cliente:
mongosh --tls --host <serverHost> --tlsCertificateKeyFile test-client.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-client.pfx -inkey mongodb-test-client.key -in mongodb-test-client.crt -certfile mongodb-test-ia.crt Uma vez adicionado ao Keychain Access, em vez de especificar o arquivo de chave de certificado, você pode usar o
--tlsCertificateSelector
para especificar o certificado a ser usado. Se o arquivo CA também estiver no Keychain Access, você poderá omitir--tlsCAFile
, bem como no exemplo a seguir:mongosh --tls --tlsCertificateSelector subject="<TestClientCertificateCommonName>" Para adicionar certificados ao Keychain Access, consulte a documentação oficial do Keychain Access.