„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum erhalte ich nach dem Upgrade meiner Azure SQL-Datenbank auf Version 12 einen TLS-Handshake-Fehler?

Warum erhalte ich nach dem Upgrade meiner Azure SQL-Datenbank auf Version 12 einen TLS-Handshake-Fehler?

Veröffentlicht am 21.12.2024
Durchsuche:484

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

Azure SQL-Datenbank-TLS-Handshake-Fehler nach v12-Upgrade

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. Zum 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 Wenn das Problem auftritt, aktualisieren Sie die Client-Verbindungszeichenfolge so, dass sie Folgendes enthält Parameter:

  • TrustServerCertificate=True: Dieser Parameter weist den Client an, dem Zertifikat des Servers zu vertrauen, auch wenn es nicht mit dem Hostnamen übereinstimmt.
  • hostNameInCertificate=*.database.windows.net: Dieser Parameter gibt den Hostnamen an, der im Server vorhanden sein soll Zertifikat.

Aktualisierte Verbindungszeichenfolge

Die aktualisierte Verbindungszeichenfolge sollte 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 von Azure SQL-Datenbank stimmte das Zertifikat des Servers immer überein der in der Client-Verbindungszeichenfolge angegebene Hostname. 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.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3