Sintomas
Suponha que você esteja usando o protocolo TLS (Transport Layer Security) versão 1,2 no Microsoft SQL Server. Quando o certificado que é usado para criptografar a comunicação de ponto de extremidade para o espelhamento de banco de dados, grupos de disponibilidade e Service Broker usar um algoritmo de hash MD5, a comunicação falhará. Além disso, você recebe a seguinte mensagem de erro no log de erros do SQL Server:
Falha no handshake de conexão. Falha na chamada para o sistema operacional: (80090331) 0x80090331 (o cliente e o servidor não podem se comunicar porque não possuem um algoritmo comum.). Estado 58. '.
Além disso, o log do Windows informa o seguinte erro Schannel:
Um alerta fatal foi gerado e enviado para o ponto de extremidade remoto. Isso pode resultar na rescisão da conexão. O código de erro fatal definido do protocolo TLS é 40. O estado do erro do Windows SChannel é 1205.
Causa
Esse problema ocorre porque o TLS 1,2 não é compatível com o MD5 como um algoritmo de hash de assinatura.
Resolução
Com base em padrões e práticas recomendadas de segurança atuais, recomendamos que você alterne para um hash de assinatura não MD5 para certificados que são usados para a criptografia de ponto de extremidade do SQL Server. A lista de versões fixas que dão suporte a TLS 1,2 está disponível no seguinte artigo da base de dados de conhecimento Microsoft:
3135244 Suporte do TLS 1,2 para Microsoft SQL Server
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.