Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Samenvatting
Dit artikel helpt u bij het oplossen van fouten met certificaatketenvertrouwen die optreden wanneer u databasetoepassingen bijwerken van SQL Server Native Client 11.0 (SNAC) naar Microsoft OLE DB-stuurprogramma 19 of Microsoft ODBC-stuurprogramma 18 voor SQL Server.
Wanneer u een upgrade uitvoert van SNAC 11.0 naar nieuwere stuurprogramma's, kunnen uw toepassingen geen verbinding maken met SQL Server met vertrouwensfouten in de certificaatketen. Dit probleem treedt op omdat de nieuwere stuurprogramma's standaard versleuteling inschakelen en certificaatvalidatie vereisen, terwijl SNAC deze standaard heeft uitgeschakeld. In dit artikel wordt uitgelegd waarom deze fouten optreden en oplossingen biedt om deze op te lossen.
- Bijgewerkt naar Microsoft OLE DB-stuurprogramma 19 voor SQL Server
- Bijgewerkt naar Microsoft ODBC-stuurprogramma 18.x voor SQL Server
Nadat u een upgrade hebt uitgevoerd van SQL Server Native Client 11.0 (Provider=SQLNCLI11) naar Microsoft OLE DB Driver 19 voor SQL Server, kunnen verbindingspogingen mislukken met het volgende foutbericht:
[Microsoft OLE DB-stuurprogramma 19 voor SQL Server]: Client kan geen verbinding tot stand brengen
[Microsoft OLE DB-stuurprogramma 19 voor SQL Server]: SSL-provider: de certificaatketen is uitgegeven door een instantie die niet wordt vertrouwd.
Oorzaak van vertrouwensfout in certificaatketen bij het upgraden naar Microsoft OLE DB-stuurprogramma 19
Deze fout geeft aan dat de clientcomputer de echtheid van het SQL Server-certificaat niet kan verifiëren omdat het is uitgegeven door een certificeringsinstantie (CA) die de client niet vertrouwt.
Deze fouten treden op als aan beide van de volgende voorwaarden wordt voldaan:
De instelling Versleuteling afdwingen voor het SQL Server-exemplaar is ingesteld op Nee.
De clientverbindingsreeks geeft niet expliciet een waarde op voor de versleutelingseigenschap of de optie Versleuteling is niet expliciet ingesteld of bijgewerkt in de DSN.
De fout treedt op vanwege een wijziging in het standaardgedrag van de clientstuurprogramma's. Bij oudere versies van clientstuurprogramma's wordt ervan uitgegaan dat gegevensversleuteling standaard is uitgeschakeld . Bij de nieuwe stuurprogramma's wordt ervan uitgegaan dat deze instelling standaard is ingeschakeld . Omdat gegevensversleuteling is ingeschakeld, probeert het stuurprogramma het certificaat van de server te valideren en mislukt het.
Oplossingen voor vertrouwensfout in certificaatketen bij het upgraden naar Microsoft OLE DB-stuurprogramma 19
OLE DB-stuurprogramma 18.x gebruiken
Microsoft OLE DB-stuurprogramma voor SQL Server 18.x gebruiken. U kunt het stuurprogramma downloaden uit releaseopmerkingen voor het Microsoft OLE DB-stuurprogramma voor SQL Server.
Verplichte versleuteling uitschakelen voor OLE DB
Wijzig de versleutelingsinstellingen in uw verbindingsreeks:
- Als de eigenschap van de toepassingsverbindingsreeks al een waarde van
YesofMandatoryvoor deEncrypt/Use Encryption for Datainstelling opgeeft, wijzigt u de waarde inNoofOptional. Bijvoorbeeld:Use Encryption for Data=Optional. - Als de verbindingsreeks geen waarde opgeeft voor
Encrypt/Use Encryption for Data, voegt u deze toeUse Encryption for Data=Optionalaan de verbindingsreeks.
Zie Versleuteling en certificaatvalidatie voor meer informatie.
Vertrouw het servercertificaat zonder validatie
Toevoegen ;TrustServerCertificate=true aan de SQL Server-verbindingsreeks. Met deze instelling moet de client het certificaat zonder validatie vertrouwen.
Notitie
Op dit moment voorkomt MSOLEDBSQL19 het maken van gekoppelde servers zonder versleuteling en een vertrouwd certificaat (een zelfondertekend certificaat is onvoldoende). Als u gekoppelde servers nodig hebt, gebruikt u de bestaande ondersteunde versie van MSOLEDBSQL.
Verwante inhoud
- Enable Encrypted Connections to the Database Engine (Versleutelde verbindingen met database-engine inschakelen)
- Het certificaat dat van de externe server is ontvangen, is uitgegeven door een fout met een niet-vertrouwde certificeringsinstantie wanneer u verbinding maakt met SQL Server
- Certificaatvalidatiefout
- Ondersteuningsbeleid voor SQL Server Native Client
- Uitleg over de SNAC-levenscyclus