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.
📑Capitole
- Eroarea de conectare - „Lanțul de certificate a fost emis de o autoritate care nu este de încredere”
- Ce înseamnă cu adevărat eroarea - criptarea este cerută, certificatul serverului nu poate dovedi identitatea acestuia
- Remedierea rapidă a clientului - Certificatul de server de încredere în fereastra de conectare SSMS
- Aceeași remediere în interiorul unui șir de conexiune la aplicație
- Remedierea corectă - oferiți serverului un certificat real în care clienții au încredere în sine
- Verificarea remedierii - reconectați modul strict și demonstrați că criptarea este cu adevărat activată
📋 Prezentare generală și Ghid pas cu pas
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:
Î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).
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.
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:
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.
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.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.
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:
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
🎙️ 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__