TLS-Handshake-Fehler der Azure SQL-Datenbank nach dem Upgrade auf v12
Nach dem Upgrade einer Azure SQL-Datenbankinstanz auf v12 kann ein TLS-Handshake-Fehler auftreten . Dieser Fehler tritt auf, wenn das vom Server vorgelegte Zertifikat nicht mit dem in der Verbindungszeichenfolge des Clients angegebenen Hostnamen übereinstimmt.
Fehlerdetails
Die Fehlermeldung weist normalerweise darauf hin, dass die Das Zertifikat ist für einen anderen Hostnamen als den in der Clientverbindung verwendeten gültig. Beispiel:
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
Lösung
Um dieses Problem zu beheben, aktualisieren Sie die Client-Verbindungszeichenfolge so, dass sie die folgenden Parameter enthält:
Aktualisierte Verbindungszeichenfolge
Die aktualisierte Verbindungszeichenfolge sollte in etwa so aussehen :
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;
Erklärung
In früheren Versionen der Azure SQL-Datenbank stimmte das Zertifikat des Servers immer mit dem in der Clientverbindungszeichenfolge angegebenen Hostnamen überein. In Version 12 ist dies jedoch nicht mehr gewährleistet. Indem Sie TrustServerCertificate auf True setzen und den richtigen Hostnamen in hostNameInCertificate angeben, können Sie den Client anweisen, das Zertifikat zu akzeptieren und die Verbindung ordnungsgemäß herzustellen.
Hinweis:
Obwohl die Das Azure-Portal empfiehlt, TrustServerCertificate auf „False“ zu setzen. Dies kann in einigen Fällen zu TLS-Handshake-Fehlern führen. Wenn diese Fehler auftreten, sollte das Problem behoben werden, indem Sie TrustServerCertificate auf True setzen und hostNameInCertificate zur Verbindungszeichenfolge hinzufügen.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich nach dem Upgrade meiner Azure SQL-Datenbank auf v12 einen TLS-Handshake-Fehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!