Compartilhar via


Erro "A cadeia de certificados foi emitida por uma autoridade que não é confiável" após a atualização de aplicativos SNAC

O suporte para o SQL Server Native Client 11.0 (SNAC) como driver para aplicativos de banco de dados terminou em 12 de julho de 2022. Todos os aplicativos que usam o SNAC 11.0 devem ser atualizados para usar versões mais recentes dos drivers (consulte Baixar o driver ODBC para SQL Server e Baixar o driver OLE DB da Microsoft para SQL Server). Este artigo descreve um problema que ocorre quando você atualiza seu aplicativo SNAC 11.0 para usar o Microsoft OLE DB Driver 19 para SQL Server ou o Microsoft ODBC Driver 18.x para SQL Server.

Se você atualizou recentemente seu aplicativo SQL Server Native Client 11.0 (Provider=SQLNCLI11) para usar o Microsoft OLE DB Driver 19 para SQL Server (Provider=MSOLEDBSQL19), poderá receber mensagens de erro semelhantes às seguintes mensagens:

[Microsoft OLE DB Driver 19 para SQL Server]: o cliente não consegue estabelecer conexão

[Microsoft OLE DB Driver 19 para SQL Server]: Provedor SSL: a cadeia de certificados foi emitida por uma autoridade que não é confiável.

Causa

Esses erros ocorrerão se ambas as condições a seguir forem verdadeiras:

  • A configuração Forçar criptografia para a instância do SQL Server é definida como Não.

  • A cadeia de conexão do cliente não especifica explicitamente um valor para a propriedade de criptografia ou a opção Criptografia não foi explicitamente definida ou atualizada no DSN.

O erro ocorre devido a uma alteração no comportamento padrão dos drivers cliente. As versões mais antigas dos drivers cliente são projetadas para assumir que a criptografia de dados está DESATIVADA por padrão. Os novos drivers pressupõem que essa configuração esteja ATIVADA por padrão. Como a criptografia de dados está definida como ON, o driver tenta validar o certificado do servidor e falha.

Soluções

  • Solução 1: Use o Microsoft OLE DB Driver para SQL Server 18.x. Você pode baixar o driver nas Notas de versão do Microsoft OLE DB Driver for SQL Server.

  • Solução 2: Se a propriedade da cadeia de conexão do aplicativo já especificar um valor de Sim ou Obrigatório para a configuração Criptografar/Usar Criptografia para Dados, altere o valor para Não ou Opcional. Por exemplo, Usar criptografia para Dados=Opcional. Se a cadeia de conexão não especificar nenhum valor para Criptografar/Usar Criptografia para Dados, adicione Usar Criptografia para Dados=Opcional à cadeia de conexão. Para obter mais informações, veja Criptografia e validação de certificado.

  • Solução 3: adicione ;TrustServerCertificate=true à cadeia de conexão. Isso forçará o cliente a confiar no certificado sem validação.

  • Observação

    Atualmente, o MSOLEDBSQL19 impede a criação de servidores vinculados sem criptografia e um certificado confiável (um certificado autoassinado é insuficiente). Se forem necessários servidores vinculados, use a versão existente com suporte do MSOLEDBSQL.

Confira também