Share via


Felet "Certifikatet som togs emot från fjärrservern utfärdades av en certifikatutfärdare som inte är betrodd" när du ansluter till SQL Server

Den här artikeln hjälper dig att lösa problemet som uppstår när du försöker upprätta en krypterad anslutning till SQL Server.

Ursprunglig produktversion: SQL Server
Original-KB-nummer: 2007728

Symptom

När du ansluter till SQL Server kan följande felmeddelande visas:

En anslutning upprättades med servern, men sedan uppstod ett fel under inloggningsprocessen. (provider: SSL-provider, fel: 0 – Certifikatkedjan utfärdades av en utfärdare som inte är betrodd.) (.Net SqlClient Data Provider)

Dessutom loggas följande felmeddelande i händelseloggen Windows System

Log Name:      System  
Source:        Schannel  
Date:          10/13/2020 3:03:31 PM  
Event ID:      36882  
Task Category: None  
Level:         Error  
Keywords:  
User:        USERNAME  
Computer:     COMPUTERNAME  
Description:  
The certificate received from the remote server was issued by an untrusted certificate authority. Because of this, none of the data contained in the certificate can be validated. The TLS connection request has failed. The attached data contains the server certificate.

Orsak

Det här felet uppstår när du försöker upprätta en krypterad anslutning till SQL Server med hjälp av ett icke-verifierbart certifikat. Detta kan inträffa i följande scenarier:

Scenario Kryptering på serversidan Kryptering på klientsidan Certifikattyp Certifikatutfärdare som finns i arkivet Betrodda rotcertifikatutfärdare
1 Ja Nej Du etablerar ett certifikat från en icke-betrodd källa (certifikatutfärdare visas inte som betrodd utfärdare i betrodda rotcertifikatutfärdare på klientdatorn) Nej
2 Av Ja SQL Server självgenererat certifikat Självsignerade certifikat visas inte i det här arkivet.

När du upprättar krypterade anslutningar till SQL Server skapar Secure Channel (Schannel) listan över betrodda certifikatutfärdare genom att söka i arkivet Betrodda rotcertifikatutfärdare på den lokala datorn. Under TLS-handskakningen skickar servern sitt offentliga nyckelcertifikat till klienten. Utfärdaren av ett offentligt nyckelcertifikat kallas certifikatutfärdare (CA). Klienten måste se till att certifikatutfärdaren är någon som klienten litar på. Detta uppnås genom att känna till den offentliga nyckeln för betrodda certifikatutfärdare i förväg. När Schannel identifierar ett certifikat som utfärdats av en ej betrodd certifikatutfärdare, till exempel i de föregående två fallen, visas felmeddelandet i avsnittet Symptom .

Lösning

Om du avsiktligt använder antingen ett certifikat från en icke-betrodd utfärdare eller ett självsignerat certifikat för att kryptera anslutningar till SQL Server kan du använda något av följande alternativ:

I scenario 1 lägger du till certifikatutfärdare i arkivet Betrodda rotcertifikatutfärdare på klientdatorn som initierar krypterad anslutning. Det gör du genom att slutföra exportera servercertifikatet och installera rotcertifikatutfärdare (CA) på de klientdatorprocedurer som anges i de kommande avsnitten i sekvensen.

Exportera servercertifikatet.

I exemplet används en fil med namnet caCert.cer som en certifikatfil. Du måste hämta certifikatfilen från servern. Följande steg beskriver hur du exporterar servercertifikatet till en fil:

  1. Klicka på Start och sedan på Kör och skriv MMC. (MMC är en förkortning för Microsoft Management Console.)

  2. Öppna Certifikat i MMC.

  3. Expandera Personligt och expandera sedan Certifikat.

  4. Högerklicka på servercertifikatet och välj sedan Alla uppgifter–>Exportera.

  5. Klicka på Nästa för att gå förbi välkomstdialogrutan i guiden Exportera certifikat.

  6. Bekräfta att Nej, exportera inte den privata nyckeln är markerad och välj sedan Nästa.

  7. Kontrollera att antingen DER-kodad binär X.509 (.CER) eller Base-64-kodad X.509 (.CER) har valts och klicka sedan på Nästa.

  8. Ange ett exportfilnamn.

  9. Klicka på Nästa och klicka sedan på Slutför för att exportera certifikatet.

Installera rotcertifikatutfärdaren (CA) på klientdatorn

  1. Starta snapin-modulen Certifikat för MMC på klientdatorn och lägg sedan till snapin-modulen Certifikat.

  2. I dialogrutan Snapin-modul för certifikat väljer du Datorkonto och sedan Nästa.

  3. I fönstret Välj dator väljer du Lokal dator: (datorn som konsolen körs på)och väljer sedan Slutför.

  4. Välj OK för att stänga dialogrutan Lägg till eller ta bort snapin-moduler .

  5. Expandera noden Certifikat (lokal dator) i den vänstra rutan i MMC.

  6. Expandera noden Betrodda rotcertifikatutfärdare , högerklicka på undermappen Certifikat , välj Alla uppgifter och välj sedan Importera.

  7. I guiden Importera certifikat går du till sidan Välkommen och väljer Nästa.

  8. På sidan Fil som ska importeras väljer du Bläddra.

  9. Bläddra till platsen för caCert.cer certifikatfil, välj filen och välj sedan Öppna.

  10. På sidan Fil som ska importeras väljer du Nästa.

  11. På sidan Certifikatarkiv godkänner du standardvalet och väljer sedan Nästa.

  12. På sidan Slutför guiden Importera certifikat väljer du Slutför.

För scenarier 1 och 2 anger du inställningen Förtroendeservercertifikat till true i klientprogrammet.

Mer information om hur du gör detta finns i följande avsnitt:

Obs!

Om du använder SQL Server Management Studio väljer du fliken Alternativ och väljer alternativet Förtroendeservercertifikat på fliken Anslutningsegenskaper.

Försiktighet: SSL-anslutningar som krypteras med hjälp av ett självsignerat certifikat ger inte stark säkerhet. De är mottagliga för man-in-the-middle attacker. Du bör inte förlita dig på SSL med självsignerade certifikat i en produktionsmiljö eller på servrar som är anslutna till Internet.

Om konfigurationen som beskrivs i föregående avsnitt i den här artikeln är oavsiktlig kan du använda något av följande alternativ för att lösa problemet:

  • Konfigurera databasmotorn att använda kryptering enligt proceduren i Aktivera krypterade anslutningar till databasmotorn

  • Om kryptering inte krävs:

    • Inaktivera krypteringsinställningar (om sådana finns) i klientprogrammet.

    • Inaktivera kryptering på serversidan med konfigurationshanteraren för SQL Server. Mer information om hur du gör detta finns i Konfigurera server.