Felet "Certifikatkedjan utfärdades 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 Microsoft OLE DB Driver 19 för SQL Server eller Microsoft ODBC Driver 18.x för SQL Server.
- Uppgraderad till Microsoft OLE DB Driver 19 för SQL Server
- Uppgraderad till Microsoft ODBC Driver 18. x för SQL Server
Om du nyligen har uppgraderat 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 utfärdades av en utfärdare som inte är betrodd.
Orsak
Dessa fel uppstår om båda följande villkor är uppfyllda:
Inställningen Framtvinga kryptering för den SQL Server instansen är inställd på Nej.
Klienten anslutningssträng anger inte uttryckligen något 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 förutsätta att datakryptering är AV som standard. De nya drivrutinerna förutsätter att den här inställningen är PÅ som standard. Eftersom datakryptering är inställt på PÅ försöker drivrutinen verifiera serverns certifikat och misslyckas.
Lösningar
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 egenskapen för programmet anslutningssträng redan anger värdet Ja eller Obligatoriskt för inställningen Kryptera/använd kryptering för data ändrar du värdet till Nej eller Valfritt. Använd till exempel Kryptering för Data=Valfritt. Om anslutningssträng inte anger något värde för Kryptera/använda kryptering 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.-
Obs!
För närvarande förhindrar MSOLEDBSQL19 skapande av länkade servrar utan kryptering och ett betrott certifikat (ett självsignerat certifikat är otillräckligt). Om länkade servrar krävs använder du den befintliga version av MSOLEDBSQL som stöds.
Se även
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för