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.
- Atualizado para o Microsoft OLE DB Driver 19 para SQL Server
- Atualizado para 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.