Fehler "Die Zertifikatkette wurde von einer nicht vertrauenswürdigen Stelle ausgestellt" 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 so aktualisiert werden, dass sie neuere Versionen der Treiber verwenden (siehe Herunterladen des ODBC-Treibers für SQL Server und Herunterladen 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 des Microsoft OLE DB-Treibers 19 für SQL Server oder des Microsoft ODBC-Treibers 18 auftritt.x für SQL Server.

Wenn Sie ihre anwendung SQL Server Native Client 11.0 (Provider=SQLNCLI11) kürzlich auf die Verwendung des Microsoft OLE DB-Treibers 19 für SQL Server (Provider=MSOLEDBSQL19) aktualisiert haben, erhalten Sie möglicherweise Fehlermeldungen, die den folgenden Meldungen ä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 nicht vertrauenswürdigen Autorität ausgestellt.

Ursache

Diese Fehler treten auf, wenn die folgenden Bedingungen erfüllt sind:

  • Die Einstellung Verschlüsselung erzwingen für den SQL Server instance ist auf Nein festgelegt.

  • Der Client Verbindungszeichenfolge gibt nicht explizit einen Wert für die Verschlüsselungseigenschaft an, oder die Verschlüsselungsoption wurde nicht explizit im DSN festgelegt oder aktualisiert.

Der Fehler tritt aufgrund einer Änderung des Standardverhaltens der Clienttreiber auf. Ältere Versionen von Clienttreibern sind so konzipiert, dass davon ausgegangen wird, dass die Datenverschlüsselung standardmäßig DEAKTIVIERT ist. Die neuen Treiber gehen davon aus, dass diese Einstellung standardmäßig auf ON festgelegt ist. Da die Datenverschlüsselung auf ON 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 unter Versionshinweise 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/Verschlüsselung für Daten verwenden angibt, ändern Sie den Wert in Nein oder Optional. Beispiel: Verschlüsselung für Daten verwenden=Optional. Wenn die Verbindungszeichenfolge keinen Wert für Encrypt/Use Encryption for Data (Verschlüsselung für Daten verschlüsseln/verwenden) angibt, fügen Sie der Verbindungszeichenfolge Use Encryption for Data=Optional hinzu. Weitere Informationen finden Sie unter Verschlüsselung und Zertifikatüberprüfung.

  • Lösung 3: Fügen Sie dem Verbindungszeichenfolge hinzu;TrustServerCertificate=true. Dadurch wird erzwungen, dass der Client dem Zertifikat ohne Überprüfung vertraut.

  • Hinweis

    Derzeit verhindert MSOLEDBSQL19 die Erstellung von Verbindungsservern ohne Verschlüsselung und ein vertrauenswürdiges Zertifikat (ein selbstsigniertes Zertifikat reicht nicht aus). Wenn Verbindungsserver erforderlich sind, verwenden Sie die vorhandene unterstützte Version von MSOLEDBSQL.

Siehe auch