Página inicial do Docs → Desenvolver aplicações → Manual do MongoDB
Use o certificado x.509 para autenticação de associação
Nesta página
O MongoDB suporta autenticação de certificado x.509 para uso com uma conexão TLS/SSL segura. Os membros do cluster fragmentado e os membros do conjunto de réplicas podem usar certificados x.509 para verificar sua associação ao cluster ou ao conjunto de réplicas em vez de usar arquivos de chaves. A autenticação da associação é um processo interno.
Observação
O MongoDB desabilita o suporte para TLS 1. Criptografia 0 em sistemas onde o TLS 1.1+ está disponível.
Habilitar a autenticação interna também habilita o Controle de acesso baseado em função. Os clientes devem autenticar como um usuário para conectar e executar operações no sistema.
Veja o tutorial Como gerenciar usuários e roles para saber como adicionar usuários ao sistema.
Veja o tutorial Como usar certificados x.509 para autenticar clientes para saber como usar certificados x.509 para a autenticação de usuários.
Importante
Uma descrição completa dos certificados TLS/SSL, PKI (Public Key Infrastructure), em particular os certificados x.509, e da autoridade de certificação está além do escopo deste documento. Este tutorial pressupõe conhecimento prévio de TLS/SSL, bem como acesso a certificados x.509 válidos.
Certificado de Membro x.509
Observação
Você deve ter certificados x.509 válidos.
A partir do MongoDB 4,0, se você especificar qualquer uma das seguintes opções de autenticação x.509, um certificado inválido será suficiente apenas para estabelecer uma conexão TLS, mas será insuficiente para autenticação:
--sslAllowInvalidCertificates
ounet.ssl.allowInvalidCertificates: true
para MongoDB 4.0 e versões mais recentes--tlsAllowInvalidCertificates
ounet.tls.allowInvalidCertificates: true
para MongoDB 4.2 e versões mais recentes
Requisitos de certificado
Use certificados de membro para verificar a associação a um cluster fragmentado ou a um conjunto de réplicas. Os caminhos do arquivo de certificado do nó são configurados com as opções net.tls.clusterFile
e net.tls.certificateKeyFile
. Os nós têm os seguintes requisitos de configuração:
A configuração do membro do cluster deve especificar um valor não vazio para pelo menos um dos atributos utilizados para autenticação. Por padrão, o MongoDB aceita:
a Organização (
O
)a Unidade Organizacional (
OU
)o componente de domínio (
DC
)
Você pode especificar atributos alternativos para utilizar para autenticação configurando
net.tls.clusterAuthX509.extensionValue
.A configuração do membro do cluster deve incluir o mesmo
net.tls.clusterAuthX509.attributes
e utilizar valores correspondentes. A ordem dos atributos não importa. O exemplo a seguir defineO
eOU
, mas nãoDC
:net: tls: clusterAuthX509: attributes: O=MongoDB, OU=MongoDB Server
Os certificados têm os seguintes requisitos:
Uma única CA (Certificate Authority, autoridade de certificação) deve emitir todos os certificados x.509 para os membros de um cluster fragmentado ou de um conjunto de réplicas.
Pelo menos uma das entradas de nome alternativo do assunto (
SAN
) deve corresponder ao nome de host do servidor usado por outros membros do cluster. Ao compararSAN
s, o MongoDB pode comparar nomes DNS ou endereços IP.Se você não especificar
subjectAltName
, o MongoDB compara o nome comum (CN). No entanto, esse uso de CN ficou obsoleto de acordo com RFC2818Se o certificado utilizado como
certificateKeyFile
incluirextendedKeyUsage
, o valor deverá incluirclientAuth
("Autenticação de cliente Web TLS") eserverAuth
("Autenticação de servidor Web TLS").extendedKeyUsage = clientAuth, serverAuth Se o certificado utilizado como
clusterFile
incluirextendedKeyUsage
, o valor deverá incluirclientAuth
.extendedKeyUsage = clientAuth
Configurar conjunto de réplicas/cluster fragmentado
Fora dos procedimentos de atualização contínua, cada componente de um conjunto de réplicas ou cluster fragmentado deve usar a mesma configuração --clusterAuthMode
para garantir que possa se conectar com segurança a todos os outros componentes do sistema.
Para sistemas do conjunto de réplicas, isto inclui todos os membros do mongod
do conjunto de réplicas.
Para sistemas de cluster fragmentado, isto inclui todas as instâncias do mongod
ou mongos
.
Observação
mongod
e mongos
se vinculam ao localhost por padrão. Se os membros do sistema forem executados em hosts diferentes, ou se você desejar que os clientes remotos se conectem ao sistema, especifique --bind_ip
ou net.bindIp
.
Usar opções de linha de comando (tls
)
Observação
Os procedimentos nesta seção usam as configurações/opção do tls
. Para procedimentos usando os aliases ssl
obsoletos, consulte Usar opções de linha de comando (ssl
).
As configurações/opções tls
oferecem funcionalidade idêntica à das opções ssl
, pois o MongoDB sempre foi compatível com o TLS 1.0 e posterior.
Para obter mais informações, consulte Configurar mongod
e mongos
para TLS/SSL.
Usar opções de linha de comando (ssl
)
Observação
Os procedimentos nesta seção usam as configurações/opção de ssl
preteridas. Para procedimentos usando seus aliases tls
(disponíveis no MongoDB 4.2+), consulte Usar opções de linha de comando (tls
).
As configurações/opções tls
oferecem funcionalidade idêntica à das opções ssl
, pois o MongoDB sempre foi compatível com o TLS 1.0 e posterior.
Para obter mais informações, consulte Configurar mongod
e mongos
para TLS/SSL.
Informações adicionais
Para fazer upgrade da autenticação interna de keyfiles para a autenticação interna x.509, consulte Atualizar da autenticação de keyfile para autenticação x.509.
Para executar uma atualização contínua dos certificados para novos certificados com DN
diferente, consulte Atualização contínua de certificados de cluster x.509 que contêm novo DN.