"O certificado recebido do servidor remoto foi emitido por um erro de autoridade de certificado não confiável" quando você se conecta ao SQL Server

Este artigo ajuda você a resolver o problema que ocorre quando você tenta fazer uma conexão criptografada com o SQL Server.

Versão original do produto: SQL Server
Número original do KB: 2007728

Sintomas

Ao se conectar ao SQL Server, você poderá receber a seguinte mensagem de erro:

Uma conexão foi estabelecida com êxito com o servidor, mas ocorreu um erro durante o processo de logon. (provedor: Provedor SSL, erro: 0 – A cadeia de certificados foi emitida por uma autoridade que não é confiável.) (Provedor de dados .Net SqlClient)

Além disso, a seguinte mensagem de erro é registrada no log de eventos do Sistema do Windows.

Log Name:      System  
Source:        Schannel  
Date:          10/13/2020 3:03:31 PM  
Event ID:      36882  
Task Category: None  
Level:         Error  
Keywords:  
User:        USERNAME  
Computer:     COMPUTERNAME  
Description:  
The certificate received from the remote server was issued by an untrusted certificate authority. Because of this, none of the data contained in the certificate can be validated. The TLS connection request has failed. The attached data contains the server certificate.

Motivo

Esse erro ocorre quando você tenta fazer uma conexão criptografada com o SQL Server usando um certificado não verificável. Isso pode acontecer nos seguintes cenários:

Cenário Criptografia do lado do servidor Criptografia do lado do cliente Tipo de certificado Autoridade de emissão de certificados presente no repositório de autoridades de certificação raiz confiáveis
1 Sim Não Você provisiona um certificado de uma origem não confiável (a autoridade de emissão de certificados não está listada como uma autoridade confiável nas Autoridades de Certificação Raiz Confiáveis no computador cliente) Não
2 Desativada Sim Certificado autogerado do SQL Server Certificados autoassinados não aparecem nesta loja.

Ao estabelecer conexões criptografadas com o SQL Server, o Schannel (Canal seguro) cria a lista de autoridades de certificação confiáveis pesquisando o repositório de autoridades de certificação raiz confiáveis no computador local. Durante o handshake do TLS, o servidor envia seu certificado de chave pública para o cliente. O emissor de um certificado de chave pública é conhecido como AC (autoridade de certificação). O cliente precisa garantir que a autoridade de certificação seja aquela em que o cliente confia. Isso é feito conhecendo a chave pública de ACs confiáveis com antecedência. Quando o Schannel detecta um certificado emitido por uma autoridade de certificação não confiável, como nos dois casos anteriores, você obtém a mensagem de erro listada na seção Sintomas .

Resolução

Se você usar intencionalmente um certificado de autoridade não confiável ou um certificado autoassinado para criptografar conexões com o SQL Server, poderá usar uma das seguintes opções:

Para o cenário 1, adicione a autoridade de certificado ao repositório Autoridades de Certificação Raiz Confiáveis no computador cliente que inicia a conexão criptografada. Para fazer isso, conclua o certificado Exportar o servidor e Instale a autoridade de certificado raiz (AC) nos procedimentos do computador cliente listados nas próximas seções nessa sequência.

Exporte o certificado do servidor

O exemplo usa um arquivo chamado caCert.cer como um arquivo de certificado. Você deve obter esse arquivo de certificado do servidor. As etapas a seguir explicam como exportar o certificado do servidor para um arquivo:

  1. Clique em Iniciar e Executar e digite MMC. (MMC é um acrônimo para o Console de Gerenciamento Microsoft.)

  2. No MMC, abra os Certificados.

  3. Expanda Pessoal e Certificados.

  4. Clique com o botão direito do mouse no certificado de servidor e selecione Todas as Tarefas->Exportar.

  5. Clique em Avançar para passar pela caixa de diálogo de boas-vindas do Assistente para Exportação de Certificados.

  6. Confirme se Não, não exporte a chave privada está selecionada e selecione Avançar.

  7. Verifique se o binário X.509 codificado por DER (.CER) ou X.509 codificado em Base 64 (.CER) está selecionado e clique em Avançar.

  8. Insira um nome de arquivo de exportação.

  9. Clique em Avançar e em Concluir para exportar o certificado.

Instalar a AC (autoridade de certificação) raiz no computador cliente

  1. Inicie o snap-in Certificados para MMC no computador cliente e adicione o snap-in Certificados.

  2. Na caixa de diálogo Snap-in Certificados , selecione Conta de computador e, em seguida, selecione Avançar.

  3. No painel Selecionar Computador , selecione Computador local: (o computador em que este console está em execução)e selecione Concluir.

  4. Clique em OK para fechar a caixa de diálogo Adicionar/Remover Snap-in.

  5. No painel esquerdo do MMC, expanda o nó Certificados (Computador Local).

  6. Expanda o nó Autoridades de Certificação Raiz Confiáveis , clique com o botão direito do mouse na subpasta Certificados , selecione Todas as Tarefas e selecione Importar.

  7. No Assistente de Importação de Certificados, na página Bem-vindo, selecione Avançar.

  8. Na página Arquivo para Importar , selecione Procurar.

  9. Navegue até o local do arquivo de certificado caCert.cer , selecione o arquivo e selecione Abrir.

  10. Na página Arquivo a Importar , selecione Avançar.

  11. Na página Repositório de Certificados , aceite a seleção padrão e selecione Avançar.

  12. Na página Concluir o Assistente de Importação de Certificado , selecione Concluir.

Para cenários 1 e 2, defina a configuração de Certificado do Servidor de Confiança como true em seu aplicativo cliente.

Para obter mais informações sobre como fazer isso, confira os seguintes tópicos:

Observação

Se você estiver usando SQL Server Management Studio, selecione a guia Opções e selecione a opção Certificado do Servidor de Confiança na guia Propriedades de Conexão.

Cuidado: As conexões SSL criptografadas usando um certificado autoassinado não fornecem forte segurança. Elas são suscetíveis a ataques de man-in-the-middle. Você não deve depender do SSL usando certificados autoassinados em um ambiente de produção ou em servidores conectados à Internet.

Se a configuração discutida nas seções anteriores deste artigo não for intencional, você poderá usar uma das seguintes opções para resolver esse problema:

  • Configurar o mecanismo de banco de dados para usar a criptografia de acordo com o procedimento em Habilitar conexões criptografadas com o Mecanismo de Banco de Dados.

  • Se a criptografia não for necessária:

    • Desabilite as configurações de criptografia (se houver) no aplicativo cliente.

    • Desabilite a criptografia do lado do servidor usando o SQL Server Configuration Manager. Para obter mais informações sobre como fazer isso, consulte Configurar Servidor.