Dela via


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.

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 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