Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Sammanfattning
Den här artikeln hjälper dig att felsöka förtroendefel i certifikatkedjan som uppstår när du uppgraderar databasprogram från SQL Server Native Client 11.0 (SNAC) till Microsoft OLE DB Driver 19 eller Microsoft ODBC Driver 18 för SQL Server.
När du uppgraderar från SNAC 11.0 till nyare drivrutiner kan dina program misslyckas med att ansluta till SQL Server med certifikatkedjans förtroendefel. Det här problemet beror på att de nyare drivrutinerna aktiverar kryptering som standard och kräver certifikatverifiering, medan SNAC inaktiverade det som standard. Åtgärda felet genom att etablera ett certifikat som klienten litar på, eller justera Encryptanslutningsinställningarna , Use Encryption for Dataeller TrustServerCertificate enligt beskrivningen i den här artikeln.
Vilket krypteringsnyckelord gäller för din drivrutin och klient
Nyckelordet som styr kryptering beror på drivrutinen och hur ditt program skapar sina reťazec pripojenia. Om du använder ett nyckelord som drivrutinen inte känner igen misslyckas anslutningen med felet "nyckelordet stöds inte" i stället för certifikatfelet.
| Drivrutin och anslutningsmetod | Nyckelord för kryptering | Nyckelord för certifikatförtroende |
|---|---|---|
OLE DB Driver 19, providersträng (IDBInitialize::Initialize) |
Encrypt |
TrustServerCertificate=yes eller no |
OLE DB Driver 19, ADO eller initieringssträng (IDataInitialize) |
Use Encryption for Data |
Trust Server Certificate=true eller false |
| ODBC-drivrutin 18, anslutningssträng eller DSN | Encrypt |
TrustServerCertificate=yes eller no |
-
OLE DB-drivrutin 19:
OptionalAccepterar ,Mandatory(standard) ochStrict. Av bakåtkompatibilitetsskäl accepterar den även värdena för version 18, därnoochOptionalmappas tillyes, ochtrueochMandatorymappas tillfalse. -
ODBC-drivrutin 18: Godtar
no/optional(standardvärdet),strictyes/ ochmandatory. -
Providersträngar: Använd
TrustServerCertificate=yesellerTrustServerCertificate=no. -
ADO och initieringssträngar: Använd
Trust Server Certificate=trueellerTrust Server Certificate=false. - Strikt läge: Verifierar alltid servercertifikatet och ignorerar inställningen för certifikatförtroende.
Om du använder TrustServerCertificate=true i en providersträng kan ett ogiltigt värdefel returneras.
Fullständiga nyckelordslistor finns i Använda reťazec pripojenia nyckelord med OLE DB Driver for SQL Server, Större versionsskillnader i MSOLEDBSQL och DSN och reťazec pripojenia nyckelord och attribut.
Fel, orsak och lösningar för certifikatkedjan för OLE DB Driver 19 och ODBC Driver 18
Välj fliken för drivrutinen som du uppgraderade till. Varje flik visar felmeddelandet du ser, varför det inträffar och lösningarna i rekommenderad ordning.
- Uppgraderad till Microsoft OLE DB Driver 19 för SQL Server
- Uppgraderad till Microsoft ODBC Driver 18.x för SQL Server
När du har uppgraderat från SQL Server Native Client 11.0 (Provider=SQLNCLI11) till Microsoft OLE DB Driver 19 för SQL Server kan anslutningsförsök misslyckas med följande felmeddelande:
[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 certifikatkedjans förtroendefel vid uppgradering till Microsoft OLE DB Driver 19
Det här felet anger att klientdatorn inte kan verifiera SQL Server-certifikatets äkthet eftersom den har utfärdats av en certifikatutfärdare (CA) som klienten inte litar på.
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.
Klientanslutningssträngen 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 förutsätter 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 PÅ försöker drivrutinen verifiera serverns certifikat och misslyckas.
Lösningar för certifikatkedjans förtroendefel vid uppgradering till Microsoft OLE DB Driver 19
Installera ett certifikat som klienten litar på (rekommenderas)
Etablera ett TLS-certifikat på den SQL Server instansen från en certifikatutfärdare som klienten litar på. Kontrollera att servern tillhandahåller alla nödvändiga mellanliggande certifikat så att klienten kan skapa kedjan till en betrodd rotcertifikatutfärdare. Den här metoden löser felet samtidigt som kryptering och certifikatverifiering är aktiverat. Mer information finns i Konfigurera Databasmotor för SQL Server för kryptering av anslutningar.
Lita på servercertifikatet utan validering
Om du inte omedelbart kan tillhandahålla ett verifierbart certifikat, anger du att drivrutinen ska hoppa över certifikatvalideringen. Nyckelordet du använder beror på hur ditt program skapar reťazec pripojenia:
- Lägg till
TrustServerCertificate=yesi en providersträng. - Lägg till
Trust Server Certificate=truei en ADO- eller initieringssträng.
Den här inställningen aktiverar inte kryptering på egen hand. Den instruerar drivrutinen att hoppa över validering av certifikat när anslutningen är krypterad, vilket gör anslutningen sårbar för man-i-mitten-attacker. Använd det bara som ett tillfälligt mått. I Strict krypteringsläge ignorerar drivrutinen den här inställningen och validerar alltid certifikatet.
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 du behöver länkade servrar använder du den befintliga versionen av MSOLEDBSQL som stöds.
Ange krypteringsnyckelordet till Valfritt
Ändra krypteringsinställningen så att drivrutinen inte kräver något verifierat certifikat. Nyckelordet du använder beror på hur ditt program skapar reťazec pripojenia:
- I en providersträng anger du
Encrypt=Optional. - I en ADO- eller initieringssträng anger du
Use Encryption for Data=Optional.
Standardvärdet i OLE DB Driver 19 är Mandatory. Om reťazec pripojenia redan anger Mandatory, yeseller true, ändrar du värdet till Optional. Om reťazec pripojenia inte anger något värde lägger du till nyckelordet. Den här ändringen återställer krypteringsbeteendet version 18 och minskar säkerheten för anslutningen.
Mer information finns i Kryptering och certifikatverifiering i OLE DB.
Använda OLE DB Driver 18.x som ett tillfälligt mått
Microsoft OLE DB Driver for SQL Server 18.x aktiverar inte kryptering som standard, så det påverkas inte av den här ändringen. Behandla det här alternativet som tillfälligt och planera din flytt till OLE DB Driver 19. Du kan ladda ned drivrutinen från Viktig information för Microsoft OLE DB-drivrutinen för SQL Server.