Technical Anshu Strona główna › Samouczki › Błąd szyfrowania SQL Server
🔐 Naprawa SQL Server

Napraw błąd szyfrowania SQL Server — rozwiązanie jednym kliknięciem

SQL Server łączy się, a następnie odmawia logowania, ponieważ nie może zaufać certyfikatowi serwera. To nie jest problem z siecią i Twoje dane nie zniknęły – jest to problem z zaufaniem. Pracuj nad poprawkami w kolejności, w jakiej są pokazane w filmie: opcja szybkiej po stronie klienta, ten sam przełącznik w parametrach połączenia aplikacji i właściwa poprawka na samym serwerze.

✍️ Technical Anshu🔐 SQL Server🎧 Multi-Language Audio
Napraw błąd szyfrowania SQL Server — rozwiązanie jednym kliknięciem
🎧 Wielojęzyczny dźwięk: W odtwarzaczu wideo kliknij [Ustawienia] (⚙️) ➔ [Ścieżka dźwiękowa], aby wybrać język.

📑Rozdziały

  1. Błąd logowania - „Łańcuch certyfikatów został wystawiony przez niezaufany organ”
  2. Co tak naprawdę oznacza błąd – wymagane jest szyfrowanie, certyfikat serwera nie może potwierdzić jego tożsamości
  3. Szybka poprawka klienta — Zaufaj certyfikatowi serwera w oknie połączenia SSMS
  4. Ta sama poprawka w ciągu połączenia aplikacji
  5. Właściwe rozwiązanie — przyznaj serwerowi prawdziwy certyfikat, któremu klienci ufają samodzielnie
  6. Weryfikacja poprawki — podłącz ponownie w sposób ścisły i udowodnij, że szyfrowanie jest naprawdę włączone

📋Omówienie i przewodnik krok po kroku

1

Przeczytaj błąd — jest to problem z zaufaniem, a nie z siecią

Twoja sieć działa prawidłowo, a serwer działa. Połączenie osiągnęło SQL Server, serwer zaoferował zaszyfrowany kanał do logowania, a Twój komputer odmówił, ponieważ certyfikat potwierdzający tożsamość serwera jest podpisany przez nikogo, komu Twój komputer nie ufa. Pełny błąd pokazywany przez SSMS to:

📌 Błąd, dokładnie tak, jak pokazuje go SSMS: „Połączenie zostało pomyślnie nawiązane z serwerem, ale następnie wystąpił błąd podczas procesu logowania. (dostawca: Dostawca SSL, błąd: 0 - Łańcuch certyfikatów został wydany przez niezaufany organ.)”

Domyślnie SQL Server chroni logowanie za pomocą certyfikatu z podpisem własnym, który sam tworzy. Certyfikat z podpisem własnym szyfruje ruch, ale nie może udowodnić, że serwer jest naprawdę Twoim serwerem, więc klienci żądający zweryfikowanego szyfrowania odrzucają go. Każda uczciwa poprawka to jedna z dwóch rzeczy: sprawienie, aby klient świadomie zaakceptował ten konkretny serwer (kroki 2 i 3) lub dał serwerowi certyfikat, któremu klienci ufają samodzielnie (krok 4).

2

Szybka poprawka klienta w SSMS - certyfikat serwera zaufania

To jest szybka trasa pokazana na filmie. Nie zmienia to niczego na serwerze; mówi temu jednemu połączeniu, aby zaakceptował certyfikat serwera bez sprawdzania, kto go podpisał. W oknie SSMS Połącz z serwerem kliknij Opcje, aby otworzyć dodatkowe zakładki, przejdź do zakładki Właściwości połączenia, ustaw szyfrowanie na Obowiązkowe (lub pozostaw je tak, jak jest oferowane), zaznacz Zaufaj certyfikatowi serwera i kliknij Połącz. Logowanie przebiega natychmiast.

⚠️ Dowiedz się, co wyłącza to pole wyboru: ruch pozostaje szyfrowany, ale weryfikacja tożsamości jest pomijana – klient zaakceptowałby również umieszczony pomiędzy nimi fałszywy serwer. W przypadku kontrolowanego przez Ciebie serwera jest to akceptowane na co dzień obejście tego problemu w Twojej biurowej sieci LAN, a na maszynach programistycznych i testowych jest to uczciwy handel. Przez Internet lub na serwerze produkcyjnym przechowującym dane klienta traktuj go jedynie jako tymczasowy pomost i zakończ zadanie od kroku 4. To jest pomost, a nie miejsce docelowe.
3

Ta sama poprawka w ciągu połączenia aplikacji

Jeśli aplikacja zamiast SSMS ulegnie awarii, ten sam przełącznik znajduje się w jej parametrach połączenia. Dodaj jawnie te dwa ustawienia — Encrypt=True włącza chroniony kanał, a TrustServerCertificate=True to pisownia ciągu połączenia pola wyboru SSMS:

Connection String
Server=SQL01;Database=AppDB;User Id=appuser;Password=YourPassword;Encrypt=True;TrustServerCertificate=True;

Użyj własnej nazwy serwera, bazy danych i loginu zamiast przykładowych wartości. Kompromis jest dokładnie taki sam, jak w przypadku pola wyboru w kroku 2, z jednym dodatkowym niebezpieczeństwem: wtopiony w konfigurację dostarczonej aplikacji, pominięte sprawdzenie dotyczy każdego użytkownika, niewidocznie i na stałe. Zachowaj go w konfiguracjach programistycznych i przejściowych, a w środowisku produkcyjnym traktuj go jako czas pożyczony do czasu, aż certyfikat serwera z kroku 4 będzie na swoim miejscu.

📌 Dlaczego aplikacje psują się bez ponownego budowania: najnowsze sterowniki zmieniły swoje ustawienia domyślne – Microsoft.Data.SqlClient 5.1 i nowsze oraz sterownik ODBC 18 domyślnie włączały Szyfrowanie. Ciągi połączeń, które nigdy nie wspomniały o szyfrowaniu, zaczęły go żądać w przypadku serwerów, których certyfikaty z podpisem własnym nie mogły przejść weryfikacji. Nic w Twojej bazie danych się nie zmieniło; kontrakt wewnątrz łańcucha tak zrobił. Jawne zapisanie ustawień oznacza, że ​​następna aktualizacja sterownika nie może zmienić zachowania aplikacji za Twoimi plecami.
4

Właściwa poprawka — nadaj serwerowi prawdziwy certyfikat

Trwała naprawa odbywa się raz na serwerze, a następnie każdy klient łączy się ściśle, bez pola wyboru i bez ostrzeżenia. Najpierw uzyskaj certyfikat pełnej nazwy DNS serwera (na przykład sql01.company.local) od wewnętrznego urzędu certyfikacji lub publicznego urzędu certyfikacji, korzystając z opcji Uwierzytelnianie serwera. Zaimportuj go wraz z kluczem prywatnym do magazynu certyfikatów komputera lokalnego na komputerze z programem SQL Server. Następnie kliknij certyfikat prawym przyciskiem myszy, wybierz Wszystkie zadania → Zarządzaj kluczami prywatnymi i nadaj kontu usługi SQL Server uprawnienie Odczyt do klucza prywatnego. Otwórz Menedżer konfiguracji SQL Server, rozwiń Konfiguracja sieci SQL Server, kliknij prawym przyciskiem myszy Protokoły dla MSSQLSERVER, wybierz Właściwości i wybierz certyfikat na karcie Certyfikat. Na karcie Flagi możesz także ustawić ForceEncryption na Tak, aby każdy klient musiał szyfrować. Uruchom ponownie usługę SQL Server — zmiana nic nie da, dopóki tego nie zrobisz.

✅ Dwie pułapki powodujące prawie każde „nie zadziałało”: certyfikat, którego nazwa nie jest zgodna z nazwą, za pomocą której łączą się klienci (połącz się za pomocą nazwy DNS serwera, a nie jego adresu IP) oraz konto usługi, które nie może odczytać klucza prywatnego. Po ponownym uruchomieniu dziennik błędów programu SQL Server powinien odnotować, że certyfikat został pomyślnie załadowany do szyfrowania — jeśli zamiast tego złoży skargę, w pierwszej kolejności należy sprawdzić uprawnienia klucza prywatnego.
⚠️ Informacje o ForceEncryption: ustawienie tej opcji na Tak na serwerze wymusza szyfrowanie każdego połączenia – co jest właściwym stanem końcowym tylko po zainstalowaniu zaufanego certyfikatu. Wymuszenie tego, gdy serwer nadal posiada swój certyfikat z podpisem własnym, po prostu powoduje, że każdy rygorystyczny klient za jednym razem kończy się tym samym błędem.
5

Sprawdź metodę Napraw w sposób ścisły

Logowanie, które zakończy się pomyślnie, dowodzi mniej, niż się ludziom wydaje, ponieważ niektóre kombinacje ustawień łączą się bez prawdziwej ochrony. Udowodnij obie połówki. Najpierw połącz się ponownie z klientem w ścisły sposób: połącz się, używając nazwy DNS serwera – nazwy zawartej w certyfikacie – ustaw szyfrowanie na Obowiązkowe i pozostaw opcję Zaufaj certyfikatowi serwera niezaznaczoną. Logowanie powinno zakończyć się sukcesem bez ostrzeżenia. Następnie w tej samej sesji zapytaj serwer, czy połączenie jest rzeczywiście szyfrowane, uruchamiając to zapytanie w SSMS:

SQL Query
SELECT session_id, encrypt_option, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SPID;

encrypt_option pokazujący TRUE oznacza ocenę pozytywną. FAŁSZ z działającym loginem oznacza, że ​​połączenie powiodło się po porzuceniu ochrony, a zadanie nie zostało zakończone. Ten pozytywny test jest prawdziwą metą: każdy poprawnie skonfigurowany klient, w tym przyszłe wersje SSMS, łączy się teraz z pełną walidacją i bez specjalnych ustawień.

🏷️Zmienne wyszukiwania tematów i słowa kluczowe

🔍 SQLServer 🔍 CertificateNotTrusted 🔍 TrustServerCertificate 🔍 SSMS 🔍 ForceEncryption 🔍 TechnicalAnshu 🔍 SQL Server Encryption Error 🔍 Certificate Chain Not Trusted 🔍 Encrypt Connection 🔍 Connection String Fix 🔍 SQL Server Configuration Manager 🔍 SSL Provider Error
🎙️ Pełna transkrypcja — kliknij, aby rozwinąć

__TOK_24__

__TOK_25__

__TOK_26__

❓ Najczęściej zadawane pytania

Czy korzystanie z tego samouczka jest w 100% bezpłatne?

__TOK_27__

Czy początkujący mogą postępować zgodnie z tym przewodnikiem?

__TOK_28__

Gdzie mogę zadawać pytania, jeśli utknę?

__TOK_29__

🚀 Obejrzyj cały samouczek na YouTube

__TOK_30__

__TOK_31__

▶️ Obejrzyj cały film
Ten samouczek jest oparty na filmie Technical Anshu dotyczącym naprawy błędu szyfrowania serwera SQL • Zablokowałeś się na którymkolwiek kroku? Zapytaj w komentarzach do filmu – tam uzyskasz pomoc 🙏