Udostępnij za pośrednictwem


Błąd "Certyfikat odebrany z serwera zdalnego został wystawiony przez niezaufany urząd certyfikacji" podczas nawiązywania połączenia z programem SQL Server

Ten artykuł ułatwia rozwiązanie problemu występującego podczas próby nawiązania zaszyfrowanego połączenia z programem SQL Server.

Oryginalna wersja produktu: SQL Server
Oryginalny numer KB: 2007728

Objawy

Podczas nawiązywania połączenia z programem SQL Server może zostać wyświetlony następujący komunikat o błędzie:

Połączenie zostało pomyślnie nawiązane z serwerem, ale wystąpił błąd podczas procesu logowania. (dostawca: Dostawca SSL, błąd: 0 — łańcuch certyfikatów został wystawiony przez urząd, który nie jest zaufany). (.Net SqlClient Dostawca danych)

Ponadto w dzienniku zdarzeń systemu Windows jest rejestrowany następujący komunikat o błędzie.

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.

Przyczyna

Ten błąd występuje, gdy próbujesz nawiązać zaszyfrowane połączenie z programem SQL Server przy użyciu niezweryfikowalnego certyfikatu. Może się to zdarzyć w następujących scenariuszach:

Scenariusz Szyfrowanie po stronie serwera Szyfrowania po stronie klienta Typ certyfikatu Urząd wystawiający certyfikaty znajdujący się w magazynie zaufanych głównych urzędów certyfikacji
1 Tak Nie. Aprowizujesz certyfikat z niezauwierzonego źródła (urząd wystawiający certyfikaty nie jest wymieniony jako zaufany urząd w zaufanych głównych urzędach certyfikacji na komputerze klienckim) Nie.
2 Wyłączona Tak Certyfikat generowany samodzielnie przez program SQL Server Certyfikaty z podpisem własnym nie są wyświetlane w tym magazynie.

Podczas nawiązywania zaszyfrowanych połączeń z programem SQL Server bezpieczny kanał (Schannel) tworzy listę zaufanych urzędów certyfikacji, wyszukując magazyn zaufanych głównych urzędów certyfikacji na komputerze lokalnym. Podczas uzgadniania protokołu TLS serwer wysyła do klienta certyfikat klucza publicznego. Wystawca certyfikatu klucza publicznego jest znany jako urząd certyfikacji. Klient musi upewnić się, że urząd certyfikacji jest zaufany przez klienta. Jest to osiągane przez wcześniejsze poznanie klucza publicznego zaufanych urzędów certyfikacji. Gdy usługa Schannel wykryje certyfikat wystawiony przez niezaufany urząd certyfikacji, taki jak w poprzednich dwóch przypadkach, zostanie wyświetlony komunikat o błędzie wymieniony w sekcji Objawy .

Rozwiązanie

Jeśli celowo używasz certyfikatu z urzędu niezaufanego lub certyfikatu z podpisem własnym do szyfrowania połączeń z programem SQL Server, możesz użyć jednej z następujących opcji:

W scenariuszu 1 dodaj urząd certyfikacji do magazynu zaufanych głównych urzędów certyfikacji na komputerze klienckim inicjującym zaszyfrowane połączenie. Aby to zrobić, ukończ eksportowanie certyfikatu serwera i Zainstaluj główny urząd certyfikacji na procedurach komputera klienckiego wymienionych w kilku następnych sekcjach tej sekwencji.

Eksportowanie certyfikatu serwera

W przykładzie użyto pliku o nazwie caCert.cer jako pliku certyfikatu. Ten plik certyfikatu należy uzyskać z serwera. W poniższych krokach wyjaśniono, jak wyeksportować certyfikat serwera do pliku:

  1. Kliknij przycisk Start , a następnie uruchom i wpisz MMC. (MMC to skrót od Microsoft Management Console.)

  2. W programie MMC otwórz certyfikaty.

  3. Rozwiń pozycję Osobiste, a następnie pozycję Certyfikaty.

  4. Kliknij prawym przyciskiem myszy certyfikat serwera, a następnie wybierz pozycję Wszystkie zadania eksportu>.

  5. Kliknij przycisk Dalej, aby przejść obok okna dialogowego powitalnego Kreatora eksportu certyfikatów.

  6. Upewnij się, że wybrano pozycję Nie, nie eksportuj klucza prywatnego, a następnie wybierz przycisk Dalej.

  7. Upewnij się, że kodowany plik binarny DER X.509 (. CER) lub kodowany algorytmem Base-64 X.509 (. Cer) jest zaznaczona, a następnie kliknij przycisk Dalej.

  8. Wprowadź nazwę pliku eksportu.

  9. Kliknij przycisk Dalej, a następnie kliknij przycisk Zakończ , aby wyeksportować certyfikat.

Instalowanie głównego urzędu certyfikacji na komputerze klienckim

  1. Uruchom przystawkę Certyfikaty dla programu MMC na komputerze klienckim, a następnie dodaj przystawkę Certyfikaty.

  2. W oknie dialogowym przystawki Certyfikaty wybierz pozycję Konto komputera, a następnie wybierz przycisk Dalej.

  3. W okienku Wybierz komputer wybierz pozycję Komputer lokalny: (komputer, na którym działa ta konsola), a następnie wybierz pozycję Zakończ.

  4. Wybierz przycisk OK , aby zamknąć okno dialogowe Dodawanie lub usuwanie przystawek .

  5. W lewym okienku programu MMC rozwiń węzeł Certyfikaty (komputer lokalny).

  6. Rozwiń węzeł Zaufane główne urzędy certyfikacji, kliknij prawym przyciskiem myszy podfolder Certyfikaty, wybierz pozycję Wszystkie zadania, a następnie wybierz polecenie Importuj.

  7. W Kreatorze importowania certyfikatów na stronie Powitanie wybierz pozycję Dalej.

  8. Na stronie Plik do importu wybierz pozycję Przeglądaj.

  9. Przejdź do lokalizacji pliku certyfikatu caCert.cer , wybierz plik, a następnie wybierz pozycję Otwórz.

  10. Na stronie Plik do importu wybierz pozycję Dalej.

  11. Na stronie Magazyn certyfikatów zaakceptuj wybór domyślny, a następnie wybierz przycisk Dalej.

  12. Na stronie Kończenie pracy Kreatora importowania certyfikatów wybierz pozycję Zakończ.

W scenariuszach 1 i 2 ustaw ustawienie Certyfikat serwera zaufania na wartość true w aplikacji klienckiej.

Aby uzyskać więcej informacji na temat tego, jak to zrobić, zobacz następujące tematy:

Uwaga

Jeśli łączysz się z programem SQL Server za pomocą programu SQL Server Management Studio, wybierz kartę Opcje w oknie Łączenie z serwerem , a następnie wybierz opcję Certyfikat serwera zaufania.

Uwaga: połączenia SSL szyfrowane przy użyciu certyfikatu z podpisem własnym nie zapewniają silnych zabezpieczeń. Są one podatne na man-in-the-middle ataki. Nie należy polegać na protokole SSL przy użyciu certyfikatów z podpisem własnym w środowisku produkcyjnym lub na serwerach połączonych z Internetem.

Jeśli konfiguracja omówiona w poprzednich sekcjach tego artykułu jest niezamierzona, możesz użyć jednej z następujących opcji, aby rozwiązać ten problem:

  • Skonfiguruj aparat bazy danych tak, aby używał szyfrowania zgodnie z procedurą w temacie Włączanie szyfrowanych połączeń z aparatem bazy danych.

  • Jeśli szyfrowanie nie jest wymagane:

    • Wyłącz ustawienia szyfrowania (jeśli istnieją) w aplikacji klienckiej.

    • Wyłącz szyfrowanie po stronie serwera przy użyciu menedżera konfiguracji programu SQL Server. Aby uzyskać więcej informacji na temat tego, jak to zrobić, zobacz Konfigurowanie serwera.