Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo fornece informações sobre os erros SSL (Secure Sockets Layer) que você pode encontrar após a atualização para o TLS 1.2 no SQL Server. Ele também lista os métodos pelos quais você pode recuperar os dados manualmente. Você também pode executar a ferramenta SQLCHECK e revisar as informações no arquivo de log SQLCHECK.
Sintomas
Considere o cenário a seguir em que você pode ver os seguintes problemas depois de atualizar o protocolo TLS para o TLS 1.2.
O Microsoft SQL Server usa um certificado assinado por um algoritmo de hash fraco. Esses certificados incluem MD5, SHA224 e SHA512.
As atualizações do TLS 1.2 foram aplicadas apenas ao cliente ou ao servidor, mas não a ambos.
O TLS 1.0 está desabilitado.
Não há algoritmos criptográficos correspondentes entre o cliente e o servidor.
Nesse cenário, você encontra os seguintes problemas após a conclusão da atualização:
Os problemas que afetam o certificado do servidor também afetam as conexões locais e as conexões de computadores cliente. Para obter mais informações, consulte Encrypting Connections to SQL Server.
O aplicativo pode gerar uma das seguintes mensagens de erro:
Pipes nomeados
Uma conexão com o servidor foi estabelecida com êxito, mas ocorreu um erro durante o processo de logon. (provedor: Provedor SSL, erro: 0 - Nenhum processo na outra extremidade do pipe) Microsoft SQL Server, Erro: 233.
TCP
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 conexão foi fechada à força pelo host remoto 10054) Microsoft SQL Server, Erro: 233.
Se você tiver uma captura de rede, ela poderá se parecer com a captura de tela a seguir que mostra que o servidor responde ao Client Hello pacote fechando a conexão.
Resolução
Para resolver esses erros, siga estas etapas:
Abra o SQL Server Configuration Manager, clique com o botão direito do mouse em Protocolos para <InstanceName> e selecione Propriedades.
Selecione a guia Certificado e verifique qual certificado está sendo usado.
Se existir um certificado, selecione Exibir para examiná-lo e, em seguida, selecione Limpar. Em seguida, vá para a etapa 4.
Se não houver certificado, examine o arquivo de log de erros do SQL Server para obter o código hash. Você pode ver uma das seguintes entradas:
2023-05-30 14:59:30.89 spid15s The certificate [Cert Hash(sha1) "B3029394BB92AA8EDA0B8E37BAD09345B4992E3D"] was successfully loaded for encryption.ou2023-05-19 04:58:56.42 spid11s A self-generated certificate was successfully loaded for encryption.Se o certificado for gerado automaticamente, pule para a etapa 2.
Abra o Repositório de Certificados do Computador no MMC (Console de Gerenciamento Microsoft).
Navegue até Certificados Pessoais.
Expanda a coluna Finalidades pretendidas e clique duas vezes nos certificados habilitados para autenticação do servidor.
Verifique se a impressão digital corresponde à impressão digital no arquivo de log de erros. Se isso não acontecer, tente outro certificado.
Verifique o algoritmo de hash de assinatura. Se for MD5, SHA224 ou SHA512, ele não dará suporte ao TLS 1.2. Se for um dos algoritmos fracos, desabilite a Autenticação de Servidor para que o SQL Server não possa usá-lo.
Se o certificado for especificado explicitamente no SQL Server Configuration Manager, selecione Limpar para removê-lo.
Localize o certificado no MMC.
No MMC, clique com o botão direito do mouse no certificado e selecione Propriedades.
Na guia Geral , desabilite o certificado completamente ou desabilite seletivamente a Autenticação do Servidor.
Salve as alterações.
Reinicie o SQL Server.
O log de erros agora deve indicar que um certificado gerado automaticamente é usado. Se o problema for resolvido, o SQL Server poderá ser executado com êxito usando o certificado autoassinado. Se você quiser um certificado Verisign ou outro, peça ao provedor de certificados para garantir que um hash forte seja usado e apropriado para o TLS 1.2. Se o problema não for resolvido, volte para a etapa 2.
Verificar protocolos TLS habilitados e desabilitados
Para verificar os protocolos TLS ativados e desativados, siga estas etapas:
Verifique o fluxo de trabalho de atualização em segundo plano e básico, caso ainda não tenha feito isso.
O cliente e o servidor devem ser atualizados para impor o TLS 1.2. Se for necessário, você pode atualizar o servidor, mas deixar o TLS 1.0 habilitado para que os clientes não atualizados possam se conectar.
Verifique o registro SSL ou TLS usando REGEDIT.
Você pode encontrar as versões SSL ou TLS habilitadas e desabilitadas na seguinte subchave do Registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\ProtocolsHá subchaves de cliente e servidor para cada versão do SSL ou TLS, e ambas têm valores Enabled e Disabled :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2][HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001Observação
Qualquer valor diferente de zero é tratado como TRUE. No entanto, 1 é geralmente preferido em vez de FFFFFFFF (ou -1).
Certifique-se de que não haja configurações incompatíveis.
Por exemplo, o TLS 1.0 está desabilitado e o TLS 1.2 está habilitado no servidor. Isso ocorre porque essas configurações podem não corresponder às configurações no cliente ou o driver do cliente pode não ser atualizado.
Você pode testar essa situação configurando
Enabled=0o TLS 1.2 (e também reabilitar o TLS 1.0 se estiver desabilitado).Reinicie o SQL Server para verificar se o problema está relacionado ao TLS 1.2 ou se é um problema geral.
Sem conjuntos de cifras correspondentes
Você pode examinar as versões TLS do cliente e do servidor e os conjuntos de criptografia nos Client Hello pacotes e Server Hello . O Client Hello pacote anuncia todos os conjuntos de cifras do cliente e especifica Server Hello um conjunto de cifras. Se não houver suítes correspondentes, o servidor fechará a conexão em vez de responder enviando o Server Hello pacote.
Se um rastreamento de rede não estiver disponível, você poderá verificar o valor da função na seguinte subchave do Registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002
Se você não vir nenhum algoritmo correspondente, entre em contato com o Suporte da Microsoft. Para ajudar o engenheiro de suporte, capture rastreamentos de rede ou rastreamentos BID, conforme especificado em Captura avançada de dados SSL.