Technical Anshu Trang chủ > Hướng dẫn > Lỗi mã hóa máy chủ SQL
🔐 Sửa lỗi máy chủ SQL

Sửa lỗi mã hóa máy chủ SQL - Giải pháp một cú nhấp chuột

SQL Server kết nối, sau đó từ chối đăng nhập vì không thể tin cậy vào chứng chỉ của máy chủ. Đây không phải là sự cố mạng và dữ liệu của bạn không biến mất - đó là sự cố về lòng tin. Thực hiện các bản sửa lỗi theo thứ tự video hiển thị: tùy chọn nhanh phía máy khách, công tắc tương tự bên trong chuỗi kết nối ứng dụng và bản sửa lỗi thích hợp trên chính máy chủ.

✍️ Technical Anshu🔐 SQL Server🎧 Multi-Language Audio
Sửa lỗi mã hóa máy chủ SQL - Giải pháp một cú nhấp chuột
🎧 Âm thanh đa ngôn ngữ: Trong trình phát video, nhấp vào [Cài đặt] (⚙️) ➔ [Bản âm thanh] để chọn ngôn ngữ.

📑Các chương

  1. Lỗi đăng nhập - "Chuỗi chứng chỉ được cấp bởi cơ quan không đáng tin cậy"
  2. Lỗi thực sự có nghĩa là gì - yêu cầu mã hóa, chứng chỉ của máy chủ không thể chứng minh danh tính của nó
  3. Sửa lỗi nhanh ứng dụng khách - Chứng chỉ máy chủ tin cậy trong cửa sổ kết nối SSMS
  4. Cách khắc phục tương tự bên trong chuỗi kết nối ứng dụng
  5. Cách khắc phục thích hợp - cấp cho máy chủ chứng chỉ thực mà khách hàng tin cậy
  6. Xác minh bản sửa lỗi - kết nối lại theo cách nghiêm ngặt và chứng minh tính năng mã hóa thực sự được bật

📋 Tổng quan & Hướng dẫn từng bước

1

Đọc lỗi - Đó là sự cố tin cậy, không phải sự cố mạng

Mạng của bạn vẫn ổn và máy chủ đang chạy. Kết nối đã đến SQL Server, máy chủ cung cấp một kênh được mã hóa để đăng nhập và PC của bạn đã từ chối kênh đó vì chứng chỉ chứng minh danh tính của máy chủ được ký bởi không ai mà PC của bạn tin tưởng. SSMS lỗi đầy đủ hiển thị là:

📌 Lỗi, chính xác như SSMS hiển thị: "Một kết nối đã được thiết lập thành công với máy chủ, nhưng sau đó đã xảy ra lỗi trong quá trình đăng nhập. (nhà cung cấp: Nhà cung cấp SSL, lỗi: 0 - Chuỗi chứng chỉ được cấp bởi một cơ quan không đáng tin cậy.)"

Theo mặc định, SQL Server bảo vệ thông tin đăng nhập bằng chứng chỉ tự ký mà nó tự tạo. Chứng chỉ tự ký sẽ mã hóa lưu lượng nhưng nó không thể chứng minh máy chủ thực sự là máy chủ của bạn, vì vậy những khách hàng yêu cầu mã hóa được xác minh sẽ từ chối nó. Mỗi cách khắc phục trung thực là một trong hai điều: làm cho máy khách chấp nhận máy chủ cụ thể này một cách có chủ ý (Bước 2 và 3) hoặc cấp cho máy chủ chứng chỉ mà máy khách tin cậy của riêng họ (Bước 4).

2

Cách khắc phục nhanh ứng dụng khách trong SSMS - Chứng chỉ máy chủ tin cậy

Đây là tuyến đường nhanh được hiển thị trong video. Nó không thay đổi gì trên máy chủ; nó yêu cầu kết nối này chấp nhận chứng chỉ của máy chủ mà không kiểm tra xem ai đã ký nó. Trong cửa sổ SSMS Kết nối với máy chủ, nhấp vào Tùy chọn để mở các tab bổ sung, đi tới tab Thuộc tính kết nối, đặt mã hóa thành Bắt buộc (hoặc để nguyên như được cung cấp), đánh dấu vào Chứng chỉ máy chủ tin cậy và nhấp vào Kết nối. Việc đăng nhập được thực hiện ngay lập tức.

⚠️ Biết hộp kiểm tắt cái gì: lưu lượng truy cập vẫn được mã hóa nhưng quá trình kiểm tra danh tính bị bỏ qua - khách hàng cũng sẽ chấp nhận một máy chủ giả mạo được đặt ở giữa. Trên mạng LAN văn phòng của riêng bạn, đối với máy chủ mà bạn kiểm soát, đây là giải pháp được chấp nhận hàng ngày và trong các máy phát triển và thử nghiệm, đó là một sự trao đổi công bằng. Qua internet hoặc trên máy chủ sản xuất chứa dữ liệu khách hàng, hãy coi nó như một cầu nối tạm thời và hoàn thành công việc ở Bước 4. Đó là một cầu nối, không phải đích đến.
3

Cách khắc phục tương tự bên trong chuỗi kết nối ứng dụng

Nếu một ứng dụng bị lỗi thay vì SSMS, thì switch tương tự sẽ tồn tại trong chuỗi kết nối của nó. Thêm hai cài đặt một cách rõ ràng - Encrypt=True bật kênh được bảo vệ và TrustServerCertificate=True là cách đánh vần chuỗi kết nối của hộp kiểm SSMS:

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

Sử dụng tên máy chủ, cơ sở dữ liệu và thông tin đăng nhập của riêng bạn thay cho các giá trị mẫu. Sự đánh đổi hoàn toàn giống với hộp kiểm ở Bước 2, với một mối nguy hiểm bổ sung: được đưa vào cấu hình của ứng dụng được vận chuyển, kiểm tra bị bỏ qua sẽ áp dụng cho mọi người dùng, một cách vô hình và vĩnh viễn. Giữ nó trong cấu hình phát triển và dàn dựng, đồng thời coi nó như thời gian mượn cho đến khi có chứng chỉ máy chủ ở Bước 4.

👉 Tại sao ứng dụng bị hỏng mà không được xây dựng lại: các trình điều khiển gần đây đã thay đổi mặc định - Microsoft.Data.SqlClient 5.1 trở lên và Trình điều khiển ODBC 18, đã bật Mã hóa theo mặc định. Các chuỗi kết nối chưa bao giờ đề cập đến mã hóa đã bắt đầu yêu cầu mã hóa, đối với các máy chủ có chứng chỉ tự ký không thể vượt qua quá trình xác thực. Không có gì về cơ sở dữ liệu của bạn thay đổi; hợp đồng bên trong chuỗi đã làm. Viết cài đặt một cách rõ ràng có nghĩa là bản cập nhật trình điều khiển tiếp theo không thể thay đổi hành vi của ứng dụng sau lưng bạn.
4

Cách khắc phục phù hợp - Cấp cho máy chủ một chứng chỉ thực

Việc sửa chữa vĩnh viễn diễn ra một lần, trên máy chủ và sau đó mọi khách hàng đều kết nối nghiêm ngặt mà không có hộp kiểm và không có cảnh báo. Trước tiên, hãy lấy chứng chỉ cho tên DNS đầy đủ của máy chủ (ví dụ: sql01.company.local) từ cơ quan cấp chứng chỉ nội bộ của bạn hoặc một CA công khai, với cách sử dụng Xác thực máy chủ. Nhập nó cùng với khóa riêng vào kho lưu trữ chứng chỉ Máy tính cục bộ trên máy SQL Server. Sau đó nhấp chuột phải vào chứng chỉ, chọn Tất cả tác vụ → Quản lý khóa riêng tư và cấp cho tài khoản dịch vụ SQL Server Đọc quyền đối với khóa riêng tư. Mở Trình quản lý cấu hình máy chủ SQL, mở rộng Cấu hình mạng máy chủ SQL, nhấp chuột phải vào Giao thức cho MSSQLSERVER, chọn Thuộc tính và chọn chứng chỉ trên tab Chứng chỉ. Trên tab Cờ bạn cũng có thể đặt ForceEncryption thành Có để mọi máy khách đều phải mã hóa. Khởi động lại dịch vụ SQL Server - thay đổi không có tác dụng gì cho đến khi bạn thực hiện.

✅ Hai cái bẫy gây ra hầu hết mọi trường hợp "nó không hoạt động": chứng chỉ có tên không khớp với tên mà máy khách kết nối (kết nối bằng tên DNS của máy chủ, không phải địa chỉ IP của nó) và tài khoản dịch vụ không thể đọc được khóa riêng. Sau khi khởi động lại, nhật ký lỗi SQL Server sẽ ghi lại rằng chứng chỉ đã được tải thành công để mã hóa - thay vào đó, nếu nó phàn nàn thì quyền khóa riêng tư là nơi đầu tiên cần xem xét.
⚠️ Giới thiệu về ForceEncryption: đặt thành Có trên máy chủ sẽ buộc mã hóa mọi kết nối - đây chỉ là trạng thái kết thúc phù hợp sau khi chứng chỉ tin cậy được cài đặt. Việc ép buộc nó trong khi máy chủ vẫn mang chứng chỉ tự ký của nó chỉ đơn giản là khiến mọi máy khách nghiêm ngặt đều gặp lỗi với cùng một lỗi này cùng một lúc.
5

Xác minh cách khắc phục theo cách nghiêm ngặt

Đăng nhập thành công một cách lặng lẽ chứng tỏ ít hơn mọi người nghĩ, bởi vì một số kết hợp cài đặt kết nối mà không có sự bảo vệ thực sự. Chứng minh cả hai nửa Trước tiên, hãy kết nối lại từ máy khách theo cách nghiêm ngặt: kết nối bằng tên DNS của máy chủ - tên bên trong chứng chỉ - đặt mã hóa thành Bắt buộc và không chọn Chứng chỉ máy chủ tin cậy. Việc đăng nhập sẽ thành công mà không có cảnh báo. Sau đó, trong cùng phiên đó, hãy hỏi máy chủ xem kết nối có thực sự được mã hóa hay không bằng cách chạy truy vấn này trong SSMS:

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

encrypt_option hiển thị TRUE là điểm đậu. SAI với thông tin đăng nhập đang hoạt động có nghĩa là kết nối đã thành công bằng cách bỏ bảo vệ và công việc chưa hoàn thành. Việc vượt qua bài kiểm tra đó chính là đích thực sự: mọi máy khách được định cấu hình chính xác, bao gồm cả các phiên bản SSMS trong tương lai, giờ đây đều kết nối với xác thực đầy đủ và không có cài đặt đặc biệt.

🏷️Biến và từ khóa tìm kiếm chủ đề

🔍 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
🎙️ Bản ghi đầy đủ - nhấn để mở rộng

__TOK_24__

__TOK_25__

__TOK_26__

❓ Câu hỏi thường gặp

Hướng dẫn này có miễn phí 100% để làm theo không?

__TOK_27__

Người mới bắt đầu có thể làm theo hướng dẫn này không?

__TOK_28__

Tôi có thể đặt câu hỏi ở đâu nếu gặp khó khăn?

__TOK_29__

🚀 Xem hướng dẫn đầy đủ trên YouTube

__TOK_30__

__TOK_31__

➡️ Xem toàn bộ video
Hướng dẫn này dựa trên video Khắc phục lỗi mã hóa máy chủ SQL của Kỹ thuật Anshu • Bị kẹt ở bước nào? Hỏi trong phần bình luận video - bạn sẽ nhận được trợ giúp ở đó 🙏