Maison >développement back-end >Golang >Pourquoi Azure SQL Database v12 génère-t-il un échec de négociation TLS après la mise à niveau ?

Pourquoi Azure SQL Database v12 génère-t-il un échec de négociation TLS après la mise à niveau ?

DDD
DDDoriginal
2024-10-27 01:15:30417parcourir

 Why Does Azure SQL Database v12 Throw a TLS Handshake Failure After Upgrade?

Erreur de la base de données Azure SQL : échec de la négociation TLS après la mise à niveau de la v12

Problème :

Suivant une mise à niveau vers Azure SQL Database v12, les utilisateurs rencontrent un échec de négociation TLS avec le message d'erreur : « Échec de la négociation TLS : x509 : le certificat est valide pour tr12.northcentralus1-a.worker.database.windows.net, *.tr12.northcentralus1 -a.worker.database.windows.net, pas [server-name].database.windows.net."

Dépannage :

Au départ, il était supposé que la chaîne de connexion devait être modifiée. Cependant, il restait cohérent entre l'environnement local fonctionnel et l'Azure Web App où la panne s'est produite.

Résolution :

La solution résidait dans la modification des paramètres de connexion :

  1. Définissez TrustServerCertificate sur True.
  2. Ajoutez le paramètre hostNameInCertificate avec la valeur *.database.windows.net.

Chaîne de connexion finale :

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;

Explication :

Le paramètre TrustServerCertificate indique s'il faut faire confiance au certificat de serveur fourni par le service Azure SQL Database. Le définir sur True permet à la connexion de se poursuivre même si le certificat n'est pas émis pour le nom de serveur spécifique spécifié dans la chaîne de connexion.

Le paramètre hostNameInCertificate permet à la connexion de réussir si le certificat du serveur contient le nom d'hôte spécifié. Cela résout le problème de la validité du certificat pour un nom d'hôte différent du nom de serveur spécifié.

Configuration du portail Azure :

Il convient de noter que le portail Azure suggère en définissant TrustServerCertificate sur False et en omettant le paramètre hostNameInCertificate. Cependant, cette configuration n'a pas résolu le problème.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn