Heim >Backend-Entwicklung >Golang >Warum löst Azure SQL-Datenbank v12 nach dem Upgrade einen TLS-Handshake-Fehler aus?

Warum löst Azure SQL-Datenbank v12 nach dem Upgrade einen TLS-Handshake-Fehler aus?

DDD
DDDOriginal
2024-10-27 01:15:30423Durchsuche

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

Azure SQL-Datenbankfehler: TLS-Handshake-Fehler nach v12-Upgrade

Problem:

Folgendes Bei einem Upgrade auf Azure SQL Database v12 stoßen Benutzer auf einen TLS-Handshake-Fehler mit der Fehlermeldung: „TLS-Handshake fehlgeschlagen: x509: Zertifikat ist gültig für tr12.northcentralus1-a.worker.database.windows.net, *.tr12.northcentralus1.“ -a.worker.database.windows.net, nicht [Servername].database.windows.net.“

Fehlerbehebung:

Anfangs wurde davon ausgegangen dass die Verbindungszeichenfolge geändert werden musste. Die Konsistenz zwischen der funktionierenden lokalen Umgebung und der Azure Web App, in der der Fehler auftrat, blieb jedoch bestehen.

Lösung:

Die Lösung lag in der Änderung der Verbindungsparameter:

  1. Setzen Sie TrustServerCertificate auf True.
  2. Fügen Sie den Parameter hostNameInCertificate mit dem Wert *.database.windows.net hinzu.

Endgültige Verbindungszeichenfolge:

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:

Der Parameter TrustServerCertificate gibt an, ob dem vom Azure SQL-Datenbankdienst bereitgestellten Serverzertifikat vertraut werden soll. Wenn Sie ihn auf „True“ setzen, kann die Verbindung auch dann fortgesetzt werden, wenn das Zertifikat nicht für den in der Verbindungszeichenfolge angegebenen spezifischen Servernamen ausgestellt wird.

Der Parameter „hostNameInCertificate“ ermöglicht eine erfolgreiche Verbindung, wenn das Serverzertifikat den angegebenen Hostnamen enthält. Dies behebt das Problem, dass das Zertifikat für einen anderen Hostnamen als den angegebenen Servernamen gültig ist.

Azure-Portalkonfiguration:

Es ist erwähnenswert, dass das Azure-Portal dies vorschlägt Setzen Sie TrustServerCertificate auf False und lassen Sie den Parameter hostNameInCertificate weg. Diese Konfiguration hat das Problem jedoch nicht behoben.

Das obige ist der detaillierte Inhalt vonWarum löst Azure SQL-Datenbank v12 nach dem Upgrade einen TLS-Handshake-Fehler aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn