Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

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.

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 .

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.

  1. 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
  2. Na seção [alt_names] , insira os nomes DNS apropriados e/ou endereços IP para o servidor MongoDB. Você pode especificar vários nomes de DNS em um servidor MongoDB.

    Para identificadores OpenSSL SAN, o MongoDB suporta:

    • Nomes de DNS e/ou

    • Campos de endereço IP

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

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.

  1. Crie o arquivo de chave de teste mongodb-test-server1.key.

    openssl genrsa -out mongodb-test-server1.key 4096
  2. 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
  3. 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
  4. 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 um mongos 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>"

Voltar

OpenSSL CA