Heim >Backend-Entwicklung >Golang >Warum löst Azure SQL-Datenbank v12 nach dem Upgrade einen TLS-Handshake-Fehler aus?
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:
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!