Menu Docs
Página inicial do Docs
/ / /
C#/.NET
/ /

X.509

Nesta página

  • Visão geral
  • Espaços reservados de código
  • Usando a autenticação X.509 em seu aplicativo
  • Solução de problemas
  • Documentação da API

No mecanismo de autenticação X., o servidor e o cliente usam o509 protocoloTLS para trocar 509 certificados de chave pública X.. Você pode usar esse mecanismo para autenticar no MongoDB Atlas, Enterprise Advanced e MongoDB Community Edition.

Dica

X.509 Mecanismo

Para saber como usar o TLS/SSL com o driver .NET/C#, consulte TLS/SSL.

Para obter mais informações sobre509 certificados X., consulte X. no manual do MongoDB Server .509

Os exemplos de código nesta página usam os seguintes espaços reservados:

  • +srv: inclua essa opção no prefixo da string de conexão somente se estiver se conectando a um cluster MongoDB Atlas . Para saber mais sobre a +srv opção, consulte Formatos de connection string no manual do MongoDB Server .

  • <hostname>: O endereço de rede da sua implantação MongoDB .

  • <port>: o número da porta da implantação do MongoDB . Se você omitir este parâmetro, o driver utilizará o número de porta padrão (27017). Você não precisa de um número de porta ao se conectar a um cluster MongoDB Atlas .

  • <X.509 certificate username>: o nome de usuário do usuário associado ao certificado X.509. O nome de usuário deve corresponder ao nome do assunto distinto do certificado. Se você omitir este parâmetro, a implantação MongoDB infere o nome de usuário a partir do certificado X.509.

  • <path to X.509 certificate>: o caminho para o arquivo de certificado X.509.

  • <X.509 certificate password>: a senha do certificado X.509.

Para usar os exemplos de código nesta página, substitua esses espaços reservados por seus próprios valores.

Para usar um509 certificado X. para autenticação, você deve usar um MongoClientSettings objeto para especificar o caminho para509 o certificado X. e a senha do certificado. O certificado deve usar 12o.p12 formato PKCS # ( ).

Dica

Converter .pem para .p12

Se o seu certificado usa o formato PEM (.pem), você deve convertê-lo no .p12 formato. Para converter o certificado, use a openssl ferramenta de linha de comando, como mostrado no exemplo de código a seguir:

openssl pkcs12 -export -out <.p12 file> -inkey <private key file> -in <.pem file>

Para obter mais informações sobre,openssl-pkcs12 consulte a documentação do OpenSSL.

Você também deve especificar MONGODB-X509 como o mecanismo de autenticação e $external como a fonte de autenticação. Você pode especificar estas opções em sua string de conexão ou usando um objeto MongoCredential. Selecione a aba Connection String ou MongoCredential para ver a sintaxe correspondente:

var connectionString = "mongodb[+srv]://<hostname>[:<port>]/?authSource=$external&authMechanism=MONGODB-X509";
var settings = MongoClientSettings.FromConnectionString(connectionString);
settings.UseTls = true;
settings.SslSettings = new SslSettings
{
ClientCertificates = new List<X509Certificate>()
{
new X509Certificate2("<path to X.509 certificate>", "<X.509 certificate password>")
}
};
var credential = MongoCredential.CreateMongoX509Credential("<X.509 certificate username>");
var settings = new MongoClientSettings
{
Credential = credential,
SslSettings = new SslSettings
{
ClientCertificates = new List<X509Certificate>()
{
new X509Certificate2("<path to X.509 certificate>", "<X.509 certificate password>")
},
},
UseTls = true,
Server = new MongoServerAddress("<hostname>"[, "<port>"]),
};

Se você estiver usando o Windows como sistema operacional, poderá encontrar um problema no qual o driver .NET/C# não consegue localizar um certificado de autenticação X.509 na memória. Este erro exibe a seguinte mensagem de erro:

No credentials are available in the security package

Para resolver esse problema, adicione o seguinte código ao seu aplicação. Este código gera quaisquer certificados X.509 exigidos pelo seu aplicação e os armazena no disco:

using (X509Certificate2 certWithKey = certOnly.CopyWithPrivateKey(key))
{
return new X509Certificate2(certWithKey.Export(X509ContentType.Pkcs12));
}

Para saber mais sobre qualquer um dos métodos e tipos MongoDB usados nesta página, consulte a seguinte documentação da API:

Para obter mais informações sobre os tipos .NET usados nesta página, consulte a seguinte documentação MSDN:

Voltar

SCRAM