Fehler "Die Zertifikatkette wurde von einer Autorität ausgestellt, die nicht vertrauenswürdig ist" nach dem Upgrade von SNAC-Anwendungen
Die Unterstützung für den SQL Server Native Client 11.0 (SNAC) als Treiber für Datenbankanwendungen endete am 12. Juli 2022. Alle Anwendungen, die SNAC 11.0 verwenden, müssen aktualisiert werden, um neuere Versionen der Treiber zu verwenden (siehe Herunterladen von ODBC-Treiber für SQL Server und Download Microsoft OLE DB-Treiber für SQL Server). In diesem Artikel wird ein Problem beschrieben, das beim Upgrade Ihrer SNAC 11.0-Anwendung auf die Verwendung von Microsoft OLE DB Driver 19 für SQL Server oder Microsoft ODBC-Treiber 18 auftritt.x für SQL Server.
- Upgrade auf Microsoft OLE DB Driver 19 für SQL Server
- Upgrade auf Microsoft ODBC-Treiber 18.x für SQL Server
Wenn Sie kürzlich ein Upgrade ihrer SQL Server Native Client 11.0-Anwendung (Provider=SQLNCLI11) auf die Verwendung von Microsoft OLE DB Driver 19 für SQL Server (Provider=MSOLEDBSQL19) durchgeführt haben, erhalten Sie möglicherweise Fehlermeldungen, die den folgenden Nachrichten ähneln:
[Microsoft OLE DB-Treiber 19 für SQL Server]: Client kann keine Verbindung herstellen
[Microsoft OLE DB-Treiber 19 für SQL Server]: SSL-Anbieter: Die Zertifikatkette wurde von einer Autorität ausgestellt, die nicht vertrauenswürdig ist.
Ursache
Diese Fehler treten auf, wenn die beiden folgenden Bedingungen erfüllt sind:
Die Einstellung "Verschlüsselung erzwingen" für die SQL Server-Instanz ist auf "Nein" festgelegt.
Der Client Verbindungszeichenfolge gibt keinen Wert für die Verschlüsselungseigenschaft an, oder die Verschlüsselungsoption wurde im DSN nicht explizit festgelegt oder aktualisiert.
Der Fehler tritt aufgrund einer Änderung des Standardverhaltens der Clienttreiber auf. Bei älteren Versionen von Clienttreibern wird davon ausgegangen, dass die Datenverschlüsselung standardmäßig deaktiviert ist. Bei den neuen Treibern wird davon ausgegangen, dass diese Einstellung standardmäßig aktiviert ist. Da die Datenverschlüsselung auf EIN festgelegt ist, versucht der Treiber, das Zertifikat des Servers zu überprüfen und schlägt fehl.
Lösungen
Lösung 1: Verwenden Sie Microsoft OLE DB-Treiber für SQL Server 18.x. Sie können den Treiber aus den Versionshinweisen für die Microsoft OLE DB-Treiber für SQL Server herunterladen.
Lösung 2: Wenn die Anwendung Verbindungszeichenfolge Eigenschaft bereits den Wert "Ja" oder "Obligatorisch" für die Einstellung "Verschlüsselung/Verwendungsverschlüsselung für Daten" angibt, ändern Sie den Wert in "Nein" oder "Optional". Verwenden Sie z. B. Use Encryption for Data=Optional. Wenn der Verbindungszeichenfolge keinen Wert für verschlüsselungs-/verwendungsverschlüsselung für Daten angibt, fügen Sie "Use Encryption for Data=Optional" zum Verbindungszeichenfolge hinzu. Weitere Informationen finden Sie unter Verschlüsselung und Zertifikatüberprüfung.
Lösung 3: Zum Verbindungszeichenfolge hinzufügen
;TrustServerCertificate=true
. Dadurch wird der Client gezwungen, dem Zertifikat ohne Überprüfung zu vertrauen.-
Notiz
Derzeit verhindert MSOLEDBSQL19 die Erstellung von Verbindungsservern ohne Verschlüsselung und vertrauenswürdiges Zertifikat (ein selbstsigniertes Zertifikat reicht nicht aus). Wenn Verbindungsserver erforderlich sind, verwenden Sie die vorhandene unterstützte Version von MSOLEDBSQL.