Technical Anshu Αρχική › Εκπαιδευτικά προγράμματα › Σφάλμα κρυπτογράφησης SQL Server
🔐 Επιδιόρθωση SQL Server

Διόρθωση σφάλματος κρυπτογράφησης SQL Server - Λύση με ένα κλικ

Ο SQL Server συνδέεται και, στη συνέχεια, αρνείται τη σύνδεση επειδή δεν μπορεί να εμπιστευτεί το πιστοποιητικό του διακομιστή. Αυτό δεν είναι πρόβλημα δικτύου και τα δεδομένα σας δεν έχουν εξαφανιστεί - είναι πρόβλημα εμπιστοσύνης. Επεξεργαστείτε τις επιδιορθώσεις με τη σειρά που τις δείχνει το βίντεο: η γρήγορη επιλογή από την πλευρά του πελάτη, ο ίδιος διακόπτης μέσα σε μια συμβολοσειρά σύνδεσης εφαρμογής και η σωστή επιδιόρθωση στον ίδιο τον διακομιστή.

✍️ Technical Anshu🔐 SQL Server🎧 Multi-Language Audio
Διόρθωση σφάλματος κρυπτογράφησης SQL Server - Λύση με ένα κλικ
🎧 Πολυγλωσσικός ήχος: Στο πρόγραμμα αναπαραγωγής βίντεο, κάντε κλικ στις [Ρυθμίσεις] (⚙️) ➔ [Κομμάτι ήχου] για να επιλέξετε γλώσσα.

📑Κεφάλαια

  1. Το σφάλμα σύνδεσης - "Η αλυσίδα πιστοποιητικών εκδόθηκε από μια αρχή που δεν είναι αξιόπιστη"
  2. Τι πραγματικά σημαίνει το σφάλμα - απαιτείται κρυπτογράφηση, το πιστοποιητικό του διακομιστή δεν μπορεί να αποδείξει την ταυτότητά του
  3. Η γρήγορη επιδιόρθωση πελάτη - Πιστοποιητικό διακομιστή αξιοπιστίας στο παράθυρο σύνδεσης SSMS
  4. Η ίδια επιδιόρθωση μέσα σε μια συμβολοσειρά σύνδεσης εφαρμογής
  5. Η σωστή επιδιόρθωση - δώστε στον διακομιστή ένα πραγματικό πιστοποιητικό που εμπιστεύονται οι πελάτες από μόνοι τους
  6. Επαλήθευση της επιδιόρθωσης - επανασυνδέστε τον αυστηρό τρόπο και αποδείξτε ότι η κρυπτογράφηση είναι πραγματικά ενεργή

📋 Επισκόπηση και οδηγός βήμα προς βήμα

1

Διαβάστε το Σφάλμα - Είναι πρόβλημα εμπιστοσύνης, όχι πρόβλημα δικτύου

Το δίκτυό σας είναι εντάξει και ο διακομιστής λειτουργεί. Η σύνδεση έφτασε στον SQL Server, ο διακομιστής πρόσφερε ένα κρυπτογραφημένο κανάλι για τη σύνδεση και ο υπολογιστής σας το αρνήθηκε επειδή το πιστοποιητικό που αποδεικνύει την ταυτότητα του διακομιστή είναι υπογεγραμμένο από κανέναν που δεν εμπιστεύεται ο υπολογιστής σας. Το πλήρες σφάλμα που εμφανίζει το SSMS είναι:

📌 Το σφάλμα, ακριβώς όπως το δείχνει το SSMS: "Έγινε επιτυχής σύνδεση με τον διακομιστή, αλλά στη συνέχεια παρουσιάστηκε σφάλμα κατά τη διαδικασία σύνδεσης. (πάροχος: Πάροχος SSL, σφάλμα: 0 - Η αλυσίδα πιστοποιητικών εκδόθηκε από μια αρχή που δεν είναι αξιόπιστη.)"

Από προεπιλογή, ο SQL Server προστατεύει τη σύνδεση με ένα αυτο-υπογεγραμμένο πιστοποιητικό που δημιουργεί ο ίδιος. Ένα αυτουπογεγραμμένο πιστοποιητικό κρυπτογραφεί την κίνηση, αλλά δεν μπορεί να αποδείξει ότι ο διακομιστής είναι πραγματικά ο διακομιστής σας, επομένως οι πελάτες που απαιτούν επαληθευμένη κρυπτογράφηση το απορρίπτουν. Κάθε ειλικρινής επιδιόρθωση είναι ένα από τα δύο πράγματα: κάντε τον πελάτη να αποδεχτεί τον συγκεκριμένο διακομιστή εν γνώσει του (Βήματα 2 και 3) ή δώστε στον διακομιστή ένα πιστοποιητικό που εμπιστεύονται οι πελάτες μόνοι τους (Βήμα 4).

2

Η γρήγορη επιδιόρθωση πελάτη στο SSMS - Trust Server Certificate

Αυτή είναι η γρήγορη διαδρομή που φαίνεται στο βίντεο. Δεν αλλάζει τίποτα στον διακομιστή. λέει σε αυτή τη σύνδεση να αποδεχτεί το πιστοποιητικό του διακομιστή χωρίς να ελέγξει ποιος το υπέγραψε. Στο παράθυρο SSMS Σύνδεση με διακομιστή, κάντε κλικ στην επιλογή Επιλογές για να ανοίξετε τις επιπλέον καρτέλες, μεταβείτε στην καρτέλα Ιδιότητες σύνδεσης, ορίστε την κρυπτογράφηση σε Υποχρεωτικό (ή αφήστε την όπως προσφέρεται), επιλέξτε Πιστοποιητικό διακομιστή αξιόπιστου και κάντε κλικ στο C. Η σύνδεση περνάει αμέσως.

⚠️ Γνωρίστε τι απενεργοποιεί το πλαίσιο ελέγχου: η κίνηση παραμένει κρυπτογραφημένη, αλλά ο έλεγχος ταυτότητας παραλείπεται - ο πελάτης θα δεχόταν επίσης έναν ψεύτικο διακομιστή που τοποθετείται ενδιάμεσα. Στο δικό σας LAN γραφείου, για έναν διακομιστή που ελέγχετε, αυτή είναι η αποδεκτή καθημερινή λύση και στις μηχανές ανάπτυξης και δοκιμής είναι δίκαιο εμπόριο. Μέσω του Διαδικτύου ή σε έναν διακομιστή παραγωγής που διατηρεί δεδομένα πελατών, αντιμετωπίστε το μόνο ως προσωρινή γέφυρα και ολοκληρώστε τη δουλειά με το Βήμα 4. Είναι μια γέφυρα, όχι ο προορισμός.
3

Η ίδια επιδιόρθωση μέσα σε μια συμβολοσειρά σύνδεσης εφαρμογής

Εάν μια εφαρμογή αποτύχει αντί για SSMS, ο ίδιος διακόπτης μένει στη συμβολοσειρά σύνδεσής της. Προσθέστε ρητά τις δύο ρυθμίσεις - Encrypt=True ενεργοποιεί το προστατευμένο κανάλι και το TrustServerCertificate=True είναι η ορθογραφία της συμβολοσειράς σύνδεσης του πλαισίου ελέγχου SSMS:

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

Χρησιμοποιήστε το δικό σας όνομα διακομιστή, βάση δεδομένων και σύνδεση στη θέση των παραδειγμάτων τιμών. Η αντιστάθμιση είναι ακριβώς η ίδια με το πλαίσιο ελέγχου στο Βήμα 2, με έναν επιπλέον κίνδυνο: ο έλεγχος που έχει παραλειφθεί, αφού γίνει στη διαμόρφωση μιας εφαρμογής που έχει αποσταλεί, ισχύει για κάθε χρήστη, αόρατα και μόνιμα. Διατηρήστε το σε διαμορφώσεις ανάπτυξης και σταδιακής διαμόρφωσης και στην παραγωγή, αντιμετωπίστε το ως δανεισμένο χρόνο έως ότου εγκατασταθεί το πιστοποιητικό διακομιστή στο Βήμα 4.

📌 Γιατί χάλασαν οι εφαρμογές χωρίς να ξαναδημιουργηθούν: τα πρόσφατα προγράμματα οδήγησης άλλαξαν τις προεπιλογές τους - Microsoft.Data.SqlClient 5.1 και νεότερη έκδοση, και το πρόγραμμα οδήγησης ODBC 18, ενεργοποιήθηκε από προεπιλογή το Encrypt. Οι συμβολοσειρές σύνδεσης που δεν ανέφεραν ποτέ κρυπτογράφηση άρχισαν να το απαιτούν, έναντι διακομιστών των οποίων τα αυτο-υπογεγραμμένα πιστοποιητικά δεν μπορούν να περάσουν την επικύρωση. Δεν άλλαξε τίποτα σχετικά με τη βάση δεδομένων σας. το συμβόλαιο μέσα στη χορδή έκανε. Η ρητή εγγραφή των ρυθμίσεων σημαίνει ότι η επόμενη ενημέρωση προγράμματος οδήγησης δεν μπορεί να αλλάξει τη συμπεριφορά της εφαρμογής σας πίσω από την πλάτη σας.
4

Η σωστή επιδιόρθωση - Δώστε στον διακομιστή ένα πραγματικό πιστοποιητικό

Η μόνιμη επισκευή γίνεται μία φορά, στον διακομιστή, και στη συνέχεια κάθε πελάτης συνδέεται αυστηρά χωρίς πλαίσιο ελέγχου και χωρίς προειδοποίηση. Πρώτα λάβετε ένα πιστοποιητικό για το πλήρες όνομα DNS του διακομιστή (για παράδειγμα sql01.company.local) από την εσωτερική αρχή έκδοσης πιστοποιητικών ή μια δημόσια αρχή έκδοσης πιστοποιητικών, με χρήση Έλεγχος ταυτότητας διακομιστή. Εισαγάγετε το, με το ιδιωτικό του κλειδί, στο χώρο αποθήκευσης πιστοποιητικών Τοπικός υπολογιστής στον υπολογιστή SQL Server. Στη συνέχεια, κάντε δεξί κλικ στο πιστοποιητικό, επιλέξτε Όλες οι εργασίες → Διαχείριση ιδιωτικών κλειδιών και εκχωρήστε στον λογαριασμό υπηρεσίας SQL Server το δικαίωμα Ανάγνωσης στο ιδιωτικό κλειδί. Ανοίξτε το SQL Server Configuration Manager, αναπτύξτε το SQL Server Network Configuration, κάντε δεξί κλικ στο Πρωτόκολλα για MSSQLSERVER, επιλέξτε Ιδιότητες και επιλέξτε το πιστοποιητικό στην καρτέλα Πιστοποιητικό. Στην καρτέλα Σημαίες μπορείτε επίσης να ορίσετε το ForceEncryption σε Ναι, ώστε κάθε πελάτης να απαιτείται να κρυπτογραφεί. Επανεκκινήστε την υπηρεσία SQL Server - η αλλαγή δεν κάνει τίποτα μέχρι να το κάνετε.

✅ Οι δύο παγίδες που προκαλούν σχεδόν κάθε "δεν λειτούργησε": ένα πιστοποιητικό του οποίου το όνομα δεν ταιριάζει με το όνομα μέσω του οποίου συνδέονται οι πελάτες (σύνδεση με το όνομα DNS του διακομιστή, όχι τη διεύθυνση IP του) και ένας λογαριασμός υπηρεσίας που δεν μπορεί να διαβάσει το ιδιωτικό κλειδί. Μετά την επανεκκίνηση, το αρχείο καταγραφής σφαλμάτων του SQL Server θα πρέπει να καταγράφει ότι το πιστοποιητικό φορτώθηκε με επιτυχία για κρυπτογράφηση - εάν αντ' αυτού παραπονείται, το δικαίωμα ιδιωτικού κλειδιού είναι το πρώτο μέρος που πρέπει να αναζητήσετε.
⚠️ Σχετικά με το ForceEncryption: η ρύθμιση του σε Ναι στον διακομιστή αναγκάζει την κρυπτογράφηση για κάθε σύνδεση - η οποία είναι η σωστή τελική κατάσταση μόνο όταν εγκατασταθεί ένα αξιόπιστο πιστοποιητικό. Εάν το εξαναγκάσετε ενώ ο διακομιστής εξακολουθεί να φέρει το αυτο-υπογεγραμμένο πιστοποιητικό του, απλώς κάνει κάθε αυστηρό πελάτη να αποτύχει με το ίδιο σφάλμα, ταυτόχρονα.
5

Επαληθεύστε το Fix the Strict Way

Μια σύνδεση που πετυχαίνει αθόρυβα αποδεικνύεται λιγότερο από ό, τι νομίζουν οι άνθρωποι, επειδή ορισμένοι συνδυασμοί ρυθμίσεων συνδέονται χωρίς πραγματική προστασία. Αποδείξτε και τα δύο μισά. Αρχικά, επανασυνδεθείτε από έναν πελάτη με τον αυστηρό τρόπο: συνδεθείτε χρησιμοποιώντας το όνομα DNS του διακομιστή - το όνομα μέσα στο πιστοποιητικό - ορίστε την κρυπτογράφηση σε Υποχρεωτική και αφήστε το Πιστοποιητικό διακομιστή αξιοπιστίας χωρίς επιλογή. Η σύνδεση πρέπει να είναι επιτυχής χωρίς προειδοποίηση. Στη συνέχεια, στην ίδια περίοδο λειτουργίας, ρωτήστε τον διακομιστή εάν η σύνδεση είναι πραγματικά κρυπτογραφημένη εκτελώντας αυτό το ερώτημα σε SSMS:

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

Το encrypt_option δείχνει ότι το TRUE είναι ο επιτυχής βαθμός. FALSE με μια λειτουργική σύνδεση σημαίνει ότι η σύνδεση πέτυχε με απόρριψη προστασίας και η εργασία δεν ολοκληρώθηκε. Αυτή η επιτυχής δοκιμή είναι η πραγματική γραμμή τερματισμού: κάθε σωστά διαμορφωμένος πελάτης, συμπεριλαμβανομένων των μελλοντικών εκδόσεων SSMS, συνδέεται πλέον με πλήρη επικύρωση και χωρίς ειδικές ρυθμίσεις.

🏷️Μεταβλητές και λέξεις-κλειδιά αναζήτησης θεμάτων

🔍 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
🎙️ Πλήρης μεταγραφή — πατήστε για ανάπτυξη

__TOK_24__

__TOK_25__

__TOK_26__

❓ Συχνές Ερωτήσεις

Είναι αυτό το σεμινάριο 100% δωρεάν για παρακολούθηση;

__TOK_27__

Μπορούν οι αρχάριοι να ακολουθήσουν αυτόν τον οδηγό;

__TOK_28__

Πού μπορώ να κάνω ερωτήσεις αν κολλήσω;

__TOK_29__

🚀 Παρακολουθήστε τον πλήρη οδηγό στο YouTube

__TOK_30__

__TOK_31__

▶️ Δείτε πλήρες βίντεο
Αυτό το σεμινάριο βασίζεται στο βίντεο του Technical Anshu Fix SQL Server Encryption Error • Κολλήσατε σε κάποιο βήμα; Ρωτήστε στα σχόλια του βίντεο — θα λάβετε βοήθεια εκεί 🙏