Compartilhar via


Erro "O certificado recebido do servidor remoto foi emitido por uma autoridade de certificação 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ê pode receber a seguinte mensagem de erro:

Uma conexão com o servidor foi estabelecida com êxito, 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 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.

Causa

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 no servidor Criptografia do cliente Tipo de certificado Autoridade emissora de certificado presente no repositório de Autoridades de Certificação Raiz Confiáveis
1 Sim No Você provisiona um certificado de uma fonte não confiável (a autoridade emissora do certificado não está listada como uma autoridade confiável em Autoridades de Certificação Raiz Confiáveis no computador cliente) Não
2 Desativado Sim Certificado autogerado do SQL Server Os certificados autoassinados não aparecem neste repositório.

Ao estabelecer conexões criptografadas com o SQL Server, o Canal Seguro (Schannel) 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 TLS, o servidor envia seu certificado de chave pública ao cliente. O emissor de um certificado de chave pública é conhecido como uma Autoridade de Certificação (CA). O cliente precisa garantir que a autoridade de certificação é de sua confiança. Isto é obtido sabendo a chave pública de CAs de confiança com antecedência. Quando o Schannel detecta um certificado que foi emitido por uma autoridade de certificação não confiável, como nos dois casos anteriores, você recebe a mensagem de erro listada na seção Sintomas .

Resolução

Se você usar intencionalmente um certificado de uma 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 certificação ao repositório de Autoridades de Certificação Raiz Confiáveis no computador cliente que inicia a conexão criptografada. Para fazer isso, conclua os procedimentos Exportar o certificado do servidor e Instalar a autoridade de certificação (CA) raiz no computador cliente listados nas próximas seções dessa sequência.

Exportar o certificado de servidor

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

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

  2. No MMC, abra os Certificados.

  3. Expanda Pessoal e, em seguida, Certificados.

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

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

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

  7. Certifique-se de que o binário codificado por DER X.509 (. CER) ou X.509 codificado em Base-64 (. CER) é selecionada e clique em Avançar.

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

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

Instalar a autoridade de certificação (CA) 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á sendo executado) e selecione Concluir.

  4. Escolha OK para fechar a caixa de diálogo Adicionar ou Remover Snap-ins .

  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, em seguida, selecione Importar.

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

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

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

  10. Na página Arquivo a ser importado , 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 Concluindo o Assistente de Importação de Certificado , selecione Concluir.

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

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

Observação

Se você estiver se conectando ao SQL Server com o SQL Server Management Studio, selecione a guia Opções na janela Conectar-se ao Servidor e, em seguida, selecione a opção Certificado do servidor confiável.

Cuidado: as conexões SSL criptografadas usando um certificado autoassinado não fornecem segurança forte. Eles são suscetíveis a man-in-the-middle ataques. Você não deve confiar no 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:

  • Configure o mecanismo de banco de dados para usar 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:

    • Desative as configurações de criptografia (se houver) em seu 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.