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ủ.
📑Các chương
- Lỗi đăng nhập - "Chuỗi chứng chỉ được cấp bởi cơ quan không đáng tin cậy"
- 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ó
- 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
- Cách khắc phục tương tự bên trong chuỗi kết nối ứng dụng
- 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
- 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
Đọ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à:
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).
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.
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:
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.
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.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.
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:
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ủ đề
🎙️ 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__