Technical Anshu Home › Tutorials › SQL Server-coderingsfout
🔐 SQL Server-oplossing

Fix SQL Server-coderingsfout - oplossing met één klik

SQL Server maakt verbinding en weigert vervolgens de aanmelding omdat het certificaat van de server niet kan worden vertrouwd. Dit is geen netwerkprobleem en uw gegevens zijn niet verdwenen: het is een vertrouwensprobleem. Werk de oplossingen uit in de volgorde waarin de video ze laat zien: de snelle optie aan de clientzijde, dezelfde schakelaar in een app-verbindingsreeks en de juiste oplossing op de server zelf.

✍️ Technical Anshu🔐 SQL Server🎧 Multi-Language Audio
Fix SQL Server-coderingsfout - oplossing met één klik
🎧 Meertalige audio: Klik in de videospeler op [Instellingen] (⚙️) ➔ [Audiotrack] om uw taal te selecteren.

📑Hoofdstukken

  1. De inlogfout - "De certificaatketen is uitgegeven door een autoriteit die niet wordt vertrouwd"
  2. Wat de fout werkelijk betekent: er is codering vereist, het certificaat van de server kan zijn identiteit niet bewijzen
  3. De snelle clientoplossing: servercertificaat vertrouwen in het SSMS-verbindingsvenster
  4. Dezelfde oplossing binnen een applicatieverbindingsreeks
  5. De juiste oplossing: geef de server een echt certificaat dat klanten zelf vertrouwen
  6. Verificatie van de oplossing: maak opnieuw verbinding op de strikte manier en bewijs dat de codering echt is ingeschakeld

📋 Overzicht en stapsgewijze handleiding

1

Lees de fout: het is een vertrouwensprobleem, geen netwerkprobleem

Uw netwerk is in orde en de server draait. De verbinding bereikte SQL Server, de server bood een gecodeerd kanaal aan voor inloggen, en uw pc weigerde dit omdat het certificaat dat de identiteit van de server bewijst, is ondertekend door niemand die uw pc vertrouwt. De volledige fout die SSMS laat zien is:

📌 De fout, precies zoals SSMS deze laat zien: "Er is een verbinding tot stand gebracht met de server, maar er is een fout opgetreden tijdens het inlogproces. (provider: SSL Provider, fout: 0 - De certificaatketen is uitgegeven door een autoriteit die niet wordt vertrouwd.)"

Standaard beschermt SQL Server de login met een zelfondertekend certificaat dat het zelf aanmaakt. Een zelfondertekend certificaat versleutelt het verkeer wel, maar kan niet bewijzen dat de server werkelijk uw server is. Daarom wijzen clients die geverifieerde versleuteling eisen dit af. Elke eerlijke oplossing bestaat uit twee dingen: ervoor zorgen dat de client deze specifieke server bewust accepteert (stap 2 en 3), of de server een certificaat geven dat de klant zelf vertrouwt (stap 4).

2

De snelle clientoplossing in SSMS - Trust Server-certificaat

Dit is de snelle route die in de video wordt weergegeven. Het verandert niets op de server; het vertelt deze ene verbinding het certificaat van de server te accepteren zonder te controleren wie het heeft ondertekend. Klik in het SSMS-venster Verbinden met server op Opties om de extra tabbladen te openen, ga naar het tabblad Verbindingseigenschappen, stel de codering in op Verplicht (of laat het zoals aangeboden), vink Vertrouwensservercertificaat aan en klik op Verbinden. De login verloopt meteen.

⚠️ Weet wat het selectievakje uitschakelt: het verkeer blijft gecodeerd, maar de identiteitscontrole wordt overgeslagen - de client accepteert ook een nepserver die ertussen is geplaatst. Op uw eigen kantoor-LAN is dit voor een server die u beheert de dagelijkse oplossing, en op ontwikkelings- en testmachines is dit een eerlijke handel. Behandel deze via internet of op een productieserver met klantgegevens alleen als een tijdelijke brug en rond de klus af met stap 4. Het is een brug, niet de bestemming.
3

Dezelfde oplossing in een app-verbindingsreeks

Als een toepassing mislukt in plaats van SSMS, bevindt dezelfde switch zich in de verbindingsreeks. Voeg de twee instellingen expliciet toe: Encrypt=True schakelt het beveiligde kanaal in, en TrustServerCertificate=True is de spelling van de verbindingsreeks van het SSMS-selectievakje:

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

Gebruik uw eigen servernaam, database en login in plaats van de voorbeeldwaarden. De afweging is precies hetzelfde als bij het selectievakje in stap 2, met één extra gevaar: ingebed in de configuratie van een verzonden applicatie, is de overgeslagen controle voor elke gebruiker van toepassing, onzichtbaar en permanent. Bewaar het in ontwikkelings- en faseringsconfiguraties, en behandel het in productie als geleende tijd totdat het servercertificaat in stap 4 aanwezig is.

📌 Waarom apps kapot gingen zonder opnieuw te worden opgebouwd: recente stuurprogramma's hebben hun standaardwaarden gewijzigd: Microsoft.Data.SqlClient 5.1 en nieuwer, en ODBC Driver 18, hebben Versleutelen standaard ingeschakeld. Verbindingsreeksen die nooit over encryptie spraken, begonnen dit te eisen tegen servers waarvan de zelfondertekende certificaten de validatie niet konden doorstaan. Er is niets aan uw database veranderd; het contract in de string deed dat wel. Het expliciet schrijven van de instellingen betekent dat de volgende driverupdate het gedrag van uw app niet achter uw rug om kan veranderen.
4

De juiste oplossing: geef de server een echt certificaat

De permanente reparatie gebeurt één keer, op de server, en daarna maakt elke client strikt verbinding zonder selectievakjes en zonder waarschuwing. Vraag eerst een certificaat voor de volledige DNS-naam van de server (bijvoorbeeld sql01.company.local) aan bij uw interne certificeringsinstantie of een openbare CA, met gebruik van serverauthenticatie. Importeer het, met zijn persoonlijke sleutel, in het certificaatarchief Lokale computer op de SQL Server-machine. Klik vervolgens met de rechtermuisknop op het certificaat, kies Alle taken → Privésleutels beheren en geef het SQL Server-serviceaccount de toestemming Lezen voor de privésleutel. Open SQL Server Configuration Manager, vouw SQL Server Network Configuration uit, klik met de rechtermuisknop op Protocollen voor MSSQLSERVER, kies Eigenschappen en selecteer het certificaat op het tabblad Certificaat. Op het tabblad Vlaggen kunt u ForceEncryption ook instellen op Ja, zodat elke client moet coderen. Start de SQL Server-service opnieuw. De wijziging doet niets totdat u dat doet.

✅ De twee valkuilen die bijna elke "het werkte niet" veroorzaken: een certificaat waarvan de naam niet overeenkomt met de naam waarmee clients verbinding maken (verbinden via de DNS-naam van de server, niet via het IP-adres), en een serviceaccount dat de privésleutel niet kan lezen. Na het opnieuw opstarten zou het foutenlogboek van SQL Server moeten vermelden dat het certificaat met succes is geladen voor codering. Als het certificaat in plaats daarvan klaagt, is de toestemming voor de privésleutel de eerste plaats waar u moet zoeken.
⚠️ Over ForceEncryption: als u dit op Ja instelt op de server, wordt encryptie voor elke verbinding afgedwongen - wat pas de juiste eindstatus is zodra een vertrouwd certificaat is geïnstalleerd. Door dit te forceren terwijl de server nog steeds zijn zelfondertekende certificaat heeft, mislukt elke strikte client in één keer met dezelfde fout.
5

Controleer de oplossing op de strikte manier

Een login die stilletjes lukt, bewijst minder dan mensen denken, omdat sommige instellingscombinaties verbinding maken zonder echte bescherming. Bewijs beide helften. Maak eerst opnieuw verbinding vanaf een client op de strikte manier: maak verbinding met de DNS-naam van de server - de naam in het certificaat - stel de codering in op Verplicht en laat Vertrouw servercertificaat uitgeschakeld. Het inloggen zou zonder waarschuwing moeten slagen. Vraag vervolgens in dezelfde sessie aan de server of de verbinding daadwerkelijk is gecodeerd door deze query uit te voeren in SSMS:

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

encrypt_option waarbij TRUE wordt weergegeven, is het voldoende cijfer. FALSE met een werkende login betekent dat de verbinding is gelukt door de beveiliging te laten vallen, en dat de klus nog niet is geklaard. Dat slagen voor de test is de echte eindstreep: elke correct geconfigureerde client, inclusief toekomstige SSMS-versies, maakt nu verbinding met volledige validatie en zonder speciale instellingen.

🏷️Variabelen en trefwoorden voor zoeken op onderwerp

🔍 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
🎙️ Volledig transcript: tik om uit te vouwen

__TOK_24__

__TOK_25__

__TOK_26__

❓ Veelgestelde vragen

Is deze tutorial 100% gratis te volgen?

__TOK_27__

Kunnen beginners deze handleiding volgen?

__TOK_28__

Waar kan ik vragen stellen als ik vastloop?

__TOK_29__

🚀 Bekijk de volledige tutorial op YouTube

__TOK_30__

__TOK_31__

▶️ Bekijk de volledige video
Deze tutorial is gebaseerd op de video van Technisch Anshu Fix SQL Server Encryption Error • Loopt u vast bij een stap? Vraag het in de videoreacties — daar krijg je hulp 🙏