Tại sao trình duyệt chặn kết nối của bạn
Bạn đang cố gắng truy cập một trang web, nhưng Chrome đã chặn lại với cảnh báo NET::ERR_CERT_WEAK_SIGNATURE_ALGORITHM. Đây không phải là một lỗi ngẫu nhiên. Trình duyệt của bạn đã phát hiện ra rằng chứng chỉ bảo mật của trang web đang sử dụng SHA-1, một thuật toán băm đã bị coi là lỗi thời và không còn an toàn trong nhiều năm qua.
Google đã chính thức ngừng hỗ trợ SHA-1 vào đầu năm 2017 sau khi các nhà nghiên cứu chứng minh được cuộc tấn công "SHAttered". Bản thử nghiệm này cho thấy hai tệp tin khác nhau có thể tạo ra cùng một mã băm SHA-1. Do lỗ hổng này, các trình duyệt hiện đại coi chứng chỉ SHA-1 là giả mạo hoặc không đáng tin cậy. Nếu máy chủ của bạn cung cấp chữ ký SHA-1—hoặc thậm chí nếu một chứng chỉ trung gian trong chuỗi sử dụng nó—kết nối sẽ bị chặn.
Cách khắc phục lỗi
Việc khắc phục lỗi này yêu cầu cập nhật phía máy chủ. Bạn cần thay thế chứng chỉ cũ bằng chứng chỉ mới được ký bằng SHA-256. Hãy làm theo các bước sau để xác định và thay đổi chứng chỉ.
Bước 1: Xác nhận thuật toán ký yếu
Đừng đoán mò nguyên nhân nằm ở đâu. Bạn có thể sử dụng OpenSSL để kiểm tra chính xác thuật toán mà máy chủ của bạn đang phát hành. Chạy lệnh này trong terminal:
openssl s_client -connect yourdomain.com:443 | openssl x509 -text -noout | grep "Signature Algorithm"
Nếu kết quả hiển thị sha1WithRSAEncryption, bạn đã tìm đúng nguyên nhân. Một trang web an toàn phải trả về sha256WithRSAEncryption hoặc ecdsa-with-SHA256.
Bước 2: Tạo CSR mới với SHA-256
Hầu hết các công cụ hiện đại đều sử dụng SHA-256 theo mặc định, nhưng tốt nhất bạn nên chỉ định rõ ràng khi tạo Yêu cầu ký chứng chỉ (CSR). Sử dụng khóa 2048-bit làm tiêu chuẩn tối thiểu.
openssl req -new -newkey rsa:2048 -nodes -sha256 -keyout yourdomain.key -out yourdomain.csr
Sau khi có tệp .csr, hãy gửi nó cho Tổ chức phát hành chứng chỉ (CA) của bạn để nhận chứng chỉ mới được ký bằng SHA-256.
Bước 3: Cập nhật các Tổ chức phát hành chứng chỉ nội bộ
Trong môi trường doanh nghiệp sử dụng Windows Certificate Services, bản thân CA có thể là điểm nghẽn. Nếu CA nội bộ của bạn vẫn đang cấp chứng chỉ SHA-1, bạn phải cập nhật cấu hình của nó. Ví dụ, trên Windows CA, bạn có thể cần chạy lệnh:
certutil -setreg ca\csp\CNGHashAlgorithm SHA256
Sau khi thay đổi cài đặt, bạn phải khởi động lại Active Directory Certificate Services và cấp lại các chứng chỉ Gốc (Root) và Trung gian (Intermediate) cho tất cả các máy khách thông qua Group Policy.
Bước 4: Kiểm tra chuỗi chứng chỉ trung gian
Đôi khi chứng chỉ chính của bạn vẫn ổn, nhưng máy chủ lại gửi một chứng chỉ trung gian SHA-1 cũ. Điều này thường xảy ra nếu bạn chưa cập nhật tệp fullchain.pem hoặc ca-bundle trong nhiều năm. Hãy đảm bảo cấu hình Nginx hoặc Apache của bạn trỏ đến một gói (bundle) chỉ chứa các chứng chỉ trung gian SHA-256.
Đối với Nginx, hãy gộp các tệp của bạn như sau:
cat yourdomain.crt intermediate.crt > fullchain.pem
Xác minh
Khởi động lại máy chủ web và xóa bộ nhớ đệm trình duyệt. Sau đó, xác minh việc khắc phục:
- Truy cập vào trang web của bạn trên Chrome.
- Nhấp vào biểu tượng Ổ khóa > Kết nối an toàn > Chứng chỉ hợp lệ.
- Mở tab Chi tiết (Details).
- Kiểm tra trường Thuật toán chữ ký (Signature algorithm). Bây giờ nó sẽ hiển thị
PKCS #1 SHA-256 With RSA Encryption.
Các biện pháp bảo mật chủ động
Các tiêu chuẩn bảo mật thay đổi rất nhanh. Bạn nên kiểm tra lại cấu hình SSL/TLS của mình sau mỗi 12 tháng. Ngoài việc khắc phục SHA-1, hãy đảm bảo bạn đã vô hiệu hóa các giao thức cũ như TLS 1.0 và 1.1, vốn cũng bị các trình duyệt hiện đại chặn.
Khi quản lý nhiều chứng chỉ, tôi thường cần kiểm tra lại mã băm của tệp để đảm bảo không có gì bị lỗi trong quá trình di chuyển. Tôi sử dụng Hash Generator trên ToolCraft cho việc này. Đây là một công cụ nhanh chóng, chạy trên trình duyệt, hỗ trợ SHA-256 và SHA-512. Vì nó xử lý dữ liệu cục bộ ngay trong trình duyệt của bạn, các khóa nhạy cảm hoặc dữ liệu chứng chỉ sẽ không bao giờ thực sự rời khỏi máy tính của bạn.
Một cảnh báo cuối cùng: Tránh sử dụng lệnh bỏ qua "thisisunsafe" trong Chrome. Mặc dù nó giúp bạn vượt qua màn hình lỗi, nhưng nó khiến người dùng của bạn có nguy cơ bị tấn công xen giữa (man-in-the-middle). Thay vào đó, hãy khắc phục chứng chỉ tận gốc tại máy chủ.

