Maison >développement back-end >Golang >Pourquoi est-ce que je reçois une erreur TLS Handshake après la mise à niveau de ma base de données Azure SQL vers la version 12 ?
Erreur de prise de contact TLS Azure SQL Database après la mise à niveau de la version 12
Vous pouvez rencontrer une erreur de prise de contact TLS après la mise à niveau d'une instance de base de données Azure SQL vers la version 12 . Cette erreur se produit lorsque le certificat présenté par le serveur ne correspond pas au nom d'hôte spécifié dans la chaîne de connexion du client.
Détails de l'erreur
Le message d'erreur indique généralement que le Le certificat est valide pour un nom d'hôte autre que celui utilisé dans la connexion client. Par exemple :
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
Solution
Pour résoudre ce problème, mettez à jour la chaîne de connexion client pour inclure les paramètres suivants :
Chaîne de connexion mise à jour
La chaîne de connexion mise à jour devrait ressembler à ceci :
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
Dans les versions précédentes d'Azure SQL Database, le certificat du serveur correspondait toujours au nom d'hôte spécifié dans la chaîne de connexion client. Cependant, dans la v12, cela n'est plus garanti. En définissant TrustServerCertificate sur True et en spécifiant le nom d'hôte correct dans hostNameInCertificate, vous pouvez demander au client d'accepter le certificat et d'établir la connexion correctement.
Remarque :
Bien que le Le portail Azure suggère de définir TrustServerCertificate sur False, cela peut entraîner des erreurs TLS Handshake dans certains cas. Si vous rencontrez ces erreurs, définir TrustServerCertificate sur True et ajouter hostNameInCertificate à la chaîne de connexion devrait résoudre 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!