Dela via


Felet "Certifikatkedjan har utfärdats av en utfärdare som inte är betrodd" efter uppgradering av SNAC-program

Stöd för SQL Server Native Client 11.0 (SNAC) som drivrutin för databasprogram upphörde den 12 juli 2022. Alla program som använder SNAC 11.0 måste uppdateras för att kunna använda nyare versioner av drivrutinerna (se Ladda ned ODBC-drivrutin för SQL Server och Ladda ned Microsoft OLE DB-drivrutin för SQL Server). Den här artikeln beskriver ett problem som uppstår när du uppgraderar ditt SNAC 11.0-program för att använda antingen Microsoft OLE DB Driver 19 för SQL Server eller Microsoft ODBC Driver 18.x för SQL Server.

Om du nyligen uppgraderade ditt SQL Server Native Client 11.0-program (Provider=SQLNCLI11) för att använda Microsoft OLE DB Driver 19 för SQL Server (Provider=MSOLEDBSQL19) kan du få felmeddelanden som liknar följande meddelanden:

[Microsoft OLE DB Driver 19 för SQL Server]: Klienten kan inte upprätta en anslutning

[Microsoft OLE DB Driver 19 för SQL Server]: SSL-provider: Certifikatkedjan har utfärdats av en utfärdare som inte är betrodd.

Orsak till förtroendefel för certifikatkedjan i SNAC-program

Dessa fel uppstår om båda följande villkor är uppfyllda:

  • Inställningen Framtvinga kryptering för SQL Server-instansen är inställd på Nej.

  • Klienten anslutningssträng anger inte uttryckligen ett värde för krypteringsegenskapen, eller så har krypteringsalternativet inte uttryckligen angetts eller uppdaterats i DSN.

Felet uppstår på grund av en ändring i standardbeteendet för klientdrivrutinerna. Äldre versioner av klientdrivrutiner är utformade för att anta att datakryptering är AV som standard. De nya drivrutinerna förutsätter att den här inställningen är som standard. Eftersom datakryptering är inställt på PÅ försöker drivrutinen verifiera serverns certifikat och misslyckas.

Lösningar för certifikatkedjans förtroendefel i SNAC-program

  • Lösning 1: Använd Microsoft OLE DB-drivrutin för SQL Server 18.x. Du kan ladda ned drivrutinen från Viktig information för Microsoft OLE DB-drivrutinen för SQL Server.

  • Lösning 2: Om programmet anslutningssträng egenskapen redan anger värdet Ja eller Obligatoriskt för inställningen Kryptering/Användningskryptering för data ändrar du värdet till Nej eller Valfritt. Använd till exempel Use Encryption for Data=Optional. Om anslutningssträng inte anger något värde för Kryptering/Användningskryptering för data lägger du till Använd kryptering för data=Valfritt i anslutningssträng. Mer information finns i Kryptering och certifikatverifiering.

  • Lösning 3: Lägg till ;TrustServerCertificate=true i anslutningssträng. Detta tvingar klienten att lita på certifikatet utan validering.

  • Kommentar

    För närvarande förhindrar MSOLEDBSQL19 att länkade servrar skapas utan kryptering och ett betrott certifikat (ett självsignerat certifikat är otillräckligt). Om länkade servrar krävs använder du den befintliga versionen av MSOLEDBSQL som stöds.

Se även