"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que estou recebendo um erro de Handshake TLS após atualizar meu Banco de Dados SQL do Azure para a v12?

Por que estou recebendo um erro de Handshake TLS após atualizar meu Banco de Dados SQL do Azure para a v12?

Publicado em 2024-12-21
Navegar:998

Why am I getting a TLS Handshake error after upgrading my Azure SQL Database to v12?

Erro de handshake de TLS do banco de dados SQL do Azure após a atualização da v12

Você pode encontrar um erro de handshake de TLS depois que uma instância do banco de dados SQL do Azure for atualizada para a v12 . Este erro ocorre quando o certificado apresentado pelo servidor não corresponde ao nome do host especificado na string de conexão do cliente.

Detalhes do erro

A mensagem de erro normalmente indica que o o certificado é válido para um nome de host diferente daquele usado na conexão do cliente. Por exemplo:

TLS Handshake failed: x509: certificate is valid for
tr12.northcentralus1-a.worker.database.windows.net,
*.tr12.northcentralus1-a.worker.database.windows.net, not [server-name].database.windows.net

Solução

Para resolver isso problema, atualize a string de conexão do cliente para incluir o seguinte parâmetros:

  • TrustServerCertificate=True: Este parâmetro diz ao cliente para confiar no certificado do servidor, mesmo que ele não corresponda ao nome do host.
  • hostNameInCertificate=*.database.windows.net: Este parâmetro especifica o nome do host que deve estar presente no servidor certificado.

String de conexão atualizada

A string de conexão atualizada deve ser semelhante a esta:

Server=[server-name].database.windows.net;Port=1433;Database=[dbname];User
ID=[user];Password=[pass];Trusted_Connection=False;Encrypt=True;Connection
Timeout=30;TrustServerCertificate=True;hostNameInCertificate=*.database.windows.net;

Explicação

Nas versões anteriores do Banco de Dados SQL do Azure, o certificado do servidor sempre correspondia o nome do host especificado na cadeia de conexão do cliente. No entanto, na v12, isso não é mais garantido. Ao definir TrustServerCertificate como True e especificar o nome do host correto em hostNameInCertificate, você pode instruir o cliente a aceitar o certificado e estabelecer a conexão corretamente.

Observação:

Embora o O portal do Azure sugere definir TrustServerCertificate como False, o que pode levar a erros de handshake de TLS em alguns casos. Se você encontrar esses erros, definir TrustServerCertificate como True e adicionar hostNameInCertificate à cadeia de conexão deve resolver o problema.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3