Technical Anshu Acasă › Tutoriale › Eroare de criptare SQL Server
🔐 Remediere SQL Server

Remediați eroarea de criptare SQL Server - Soluție cu un singur clic

SQL Server se conectează, apoi refuză autentificarea deoarece nu are încredere în certificatul serverului. Aceasta nu este o problemă de rețea și datele dvs. nu au dispărut - este o problemă de încredere. Execută remedierile în ordinea în care le arată videoclipul: opțiunea rapidă pe partea clientului, același comutator în interiorul unui șir de conexiune a aplicației și remedierea adecvată pe serverul însuși.

✍️ Technical Anshu🔐 SQL Server🎧 Multi-Language Audio
Remediați eroarea de criptare SQL Server - Soluție cu un singur clic
🎧 Audio multilingv: În playerul video, faceți clic pe [Setări] (⚙️) ➔ [Pistă audio] pentru a selecta limba.

📑Capitole

  1. Eroarea de conectare - „Lanțul de certificate a fost emis de o autoritate care nu este de încredere”
  2. Ce înseamnă cu adevărat eroarea - criptarea este cerută, certificatul serverului nu poate dovedi identitatea acestuia
  3. Remedierea rapidă a clientului - Certificatul de server de încredere în fereastra de conectare SSMS
  4. Aceeași remediere în interiorul unui șir de conexiune la aplicație
  5. Remedierea corectă - oferiți serverului un certificat real în care clienții au încredere în sine
  6. Verificarea remedierii - reconectați modul strict și demonstrați că criptarea este cu adevărat activată

📋 Prezentare generală și Ghid pas cu pas

1

Citiți eroarea - Este o problemă de încredere, nu o problemă de rețea

Rețeaua dvs. este în regulă și serverul funcționează. Conexiunea a ajuns la SQL Server, serverul a oferit un canal criptat pentru autentificare, iar PC-ul a refuzat-o deoarece certificatul care dovedește identitatea serverului este semnat de nimeni în care computerul tău nu are încredere. Eroarea completă pe care o arată SSMS este:

📌 Eroarea, exact așa cum o arată SSMS: „O conexiune a fost stabilită cu succes cu serverul, dar apoi a apărut o eroare în timpul procesului de conectare. (furnizor: Furnizor SSL, eroare: 0 - Lanțul de certificate a fost emis de o autoritate care nu este de încredere.)”

În mod implicit, SQL Server protejează autentificarea cu un certificat autosemnat pe care îl creează singur. Un certificat autosemnat criptează traficul, dar nu poate dovedi că serverul este cu adevărat serverul tău, așa că clienții care solicită criptare verificată îl resping. Fiecare remediere sinceră este unul dintre două lucruri: faceți clientul să accepte acest server în mod conștient (Pașii 2 și 3) sau oferiți serverului un certificat în care clienții au încredere singuri (Pasul 4).

2

Remedierea rapidă a clientului în SSMS - Certificat de server de încredere

Acesta este traseul rapid prezentat în videoclip. Nu schimbă nimic pe server; îi spune acestei conexiuni să accepte certificatul serverului fără a verifica cine l-a semnat. În fereastra SSMS Conectați-vă la server, faceți clic pe Opțiuni pentru a deschide filele suplimentare, accesați fila Proprietăți conexiune, setați criptarea la Obligatoriu (sau lăsați-o așa cum este oferit), bifați Certificat server de încredere și faceți clic pe Conectați. Autentificarea trece imediat.

⚠️ Aflați ce dezactivează caseta de selectare: traficul rămâne criptat, dar verificarea identității este omisă - clientul ar accepta și un server fals plasat între ele. Pe propriul dvs. LAN de birou, pentru un server pe care îl controlați, aceasta este soluția acceptată de zi cu zi, iar în mașinile de dezvoltare și testare este un comerț echitabil. Pe internet sau pe un server de producție care deține date despre clienți, tratați-l doar ca o punte temporară și finalizați lucrarea cu Pasul 4. Este o punte, nu destinația.
3

Aceeași soluție în interiorul unui șir de conexiune la aplicație

Dacă o aplicație eșuează în loc de SSMS, același comutator se află în șirul său de conexiune. Adăugați cele două setări în mod explicit - Encrypt=True activează canalul protejat, iar TrustServerCertificate=True este ortografia șirului de conexiune din caseta de selectare SSMS:

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

Utilizați propriul nume de server, baza de date și autentificare în locul valorilor exemplu. Compensația este exact aceeași cu caseta de selectare din Pasul 2, cu un pericol suplimentar: inclusă în configurația unei aplicații livrate, verificarea omisă se aplică fiecărui utilizator, în mod invizibil și permanent. Păstrați-l în configurațiile de dezvoltare și de punere în pas și, în producție, tratați-l ca timp împrumutat până când certificatul de server din Pasul 4 este în vigoare.

📌 De ce aplicațiile s-au stricat fără a fi reconstruite: driverele recente și-au schimbat valorile implicite - Microsoft.Data.SqlClient 5.1 și mai nou și ODBC Driver 18, au activat implicit Encrypt. Șirurile de conexiune care nu au menționat niciodată criptarea au început să o solicite, împotriva serverelor ale căror certificate autosemnate nu pot trece validarea. Nu s-a schimbat nimic în baza de date; contractul din interiorul șirului a făcut. Scrierea setărilor în mod explicit înseamnă că următoarea actualizare a driverului nu poate schimba comportamentul aplicației în spatele tău.
4

Soluția corectă - Oferiți serverului un certificat real

Reparația permanentă are loc o dată, pe server, iar apoi fiecare client se conectează strict, fără casetă de selectare și fără avertisment. Mai întâi, obțineți un certificat pentru numele DNS complet al serverului (de exemplu, sql01.company.local) de la autoritatea de certificare internă sau de la un CA public, cu utilizarea Autentificarea serverului. Importați-l, cu cheia sa privată, în depozitul de certificate Computer local de pe computerul SQL Server. Apoi faceți clic dreapta pe certificat, alegeți Toate sarcinile → Gestionați cheile private și acordați contului de serviciu SQL Server permisiunea Citire pe cheia privată. Deschideți SQL Server Configuration Manager, extindeți SQL Server Network Configuration, faceți clic dreapta pe Protocols for MSSQLSERVER, alegeți Properties și selectați certificatul din fila Certificat. În fila Flags, puteți seta, de asemenea, ForceEncryption la Da, astfel încât fiecare client trebuie să cripteze. Reporniți serviciul SQL Server - modificarea nu face nimic până când nu o faceți.

✅ Cele două capcane care provoacă aproape fiecare „nu a funcționat”: un certificat al cărui nume nu se potrivește cu numele prin care clienții se conectează (conectează-te după numele DNS al serverului, nu adresa sa IP) și un cont de serviciu care nu poate citi cheia privată. După repornire, jurnalul de erori SQL Server ar trebui să înregistreze că certificatul a fost încărcat cu succes pentru criptare - dacă se plânge în schimb, permisiunea cheii private este primul loc de căutat.
⚠️ Despre ForceEncryption: setarea lui la Da pe server forțează criptarea pentru fiecare conexiune - care este starea finală corectă numai după ce este instalat un certificat de încredere. Forțarea acestuia în timp ce serverul încă poartă certificatul său autosemnat face pur și simplu ca fiecare client strict să eșueze cu aceeași eroare, totul dintr-o dată.
5

Verificați opțiunea Fix the Strict Way

O autentificare care reușește în liniște se dovedește mai puțin decât cred oamenii, deoarece unele combinații de setări se conectează fără protecție reală. Demonstrați ambele jumătăți. Mai întâi, reconectați-vă de la un client în modul strict: conectați-vă folosind numele DNS al serverului - numele din interiorul certificatului - setați criptarea la Obligatoriu și lăsați Certificat server de încredere nebifat. Conectarea ar trebui să reușească fără avertisment. Apoi, în aceeași sesiune, întrebați serverul dacă conexiunea este de fapt criptată, rulând această interogare în SSMS:

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

encrypt_option care arată TRUE este nota de promovare. FALSE cu o autentificare funcțională înseamnă că conexiunea a reușit prin eliminarea protecției și lucrarea nu este finalizată. Acest test de trecere este adevărata linie de sosire: orice client configurat corect, inclusiv versiunile viitoare SSMS, se conectează acum cu validare completă și fără setări speciale.

🏷️Variabile și cuvinte cheie pentru căutarea subiectelor

🔍 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
🎙️ Transcriere completă — atingeți pentru a extinde

__TOK_24__

__TOK_25__

__TOK_26__

❓ Întrebări frecvente

Este acest tutorial 100% gratuit de urmat?

__TOK_27__

Pot începătorii să urmeze acest ghid?

__TOK_28__

Unde pot pune întrebări dacă rămân blocat?

__TOK_29__

🚀 Urmărește tutorialul complet pe YouTube

__TOK_30__

__TOK_31__

▶️ Urmăriți videoclipul complet
Acest tutorial se bazează pe videoclipul de la Technical Anshu Fix SQL Server Encryption Error • Blocat la vreun pas? Întrebați în comentariile video - veți primi ajutor acolo 🙏