Cách khắc phục nhanh
Nếu bạn đang truy cập một trang web và thấy lỗi này, bạn không thể làm gì nhiều. Vấn đề nằm ở máy chủ, không phải máy tính của bạn. Nếu bạn sở hữu trang web, giải pháp nhanh nhất là cấp lại chứng chỉ SSL (reissue). Hầu hết các Tổ chức phát hành chứng chỉ (CA) hiện đại như Let's Encrypt, DigiCert, hoặc Sectigo hiện nay đều bao gồm dữ liệu SCT (Signed Certificate Timestamp) bắt buộc theo mặc định. Việc cấp lại đơn giản thường sẽ khắc phục lỗi trong vài phút.
Tại sao Chrome chặn trang web của bạn?
Certificate Transparency (CT) là một biện pháp bảo mật nhằm ngăn chặn gian lận và cấp sai chứng chỉ ở cấp độ CA. Nó hoạt động như một dấu vết kiểm toán công khai. Kể từ tháng 7 năm 2018, Google Chrome yêu cầu mọi chứng chỉ SSL công khai phải được ghi lại trong ít nhất hai hoặc ba nhật ký có thể kiểm toán công khai. Nếu Chrome không tìm thấy bằng chứng cho thấy chứng chỉ của bạn đã được ghi nhật ký, nó sẽ ngắt kết nối để bảo vệ người dùng.
Trang web của bạn có thể gặp lỗi này vì một vài lý do cụ thể:
- CA đã không gửi chứng chỉ của bạn đến các nhật ký công khai bắt buộc.
- Máy chủ của bạn bị cấu hình sai và đang loại bỏ dữ liệu SCT trong quá trình bắt tay TLS.
- Chứng chỉ là một tệp cũ được cấp trước khi CT trở thành yêu cầu bắt buộc.
- Bạn đang sử dụng một CA nội bộ hoặc riêng tư cho một tên miền mà Chrome cho là công khai.
Cách khắc phục lỗi
1. Cấp lại chứng chỉ SSL
Phần lớn các trường hợp, chứng chỉ chỉ đơn giản là thiếu các SCT được nhúng. Việc cấp lại chứng chỉ buộc CA của bạn phải tạo các mốc thời gian mới. Nếu bạn sử dụng Let's Encrypt, bạn có thể kích hoạt việc gia hạn mới bằng một lệnh duy nhất:
sudo certbot renew --force-renewal
Đối với các CA thương mại như DigiCert hoặc Namecheap, hãy truy cập bảng điều khiển của bạn và chọn "Reissue" hoặc "Replace". Việc này thường miễn phí. Chỉ cần đảm bảo tùy chọn "Certificate Transparency" đã được chọn nếu nhà cung cấp của bạn có nút bật tắt cho nó.
2. Cấu hình chính sách cho các CA nội bộ/riêng tư
Các tên miền nội bộ thường gặp lỗi này vì các CA riêng tư không ghi nhật ký vào các máy chủ công khai. Chrome có thể nhầm lẫn áp dụng các yêu cầu công khai cho mạng riêng của bạn. Để khắc phục điều này trên các máy trạm được quản lý, bạn cần yêu cầu Chrome bỏ qua kiểm tra CT cho các URL nội bộ cụ thể.
Windows (Registry Editor):
Đi tới HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome. Tạo một key có tên là CertificateTransparencyEnforcementDisabledForUrls. Sau đó, thêm các giá trị chuỗi cho các tên miền của bạn:
"1" = "internal.corp.com"
"2" = "*.dev.local"
macOS (Terminal):
defaults write com.google.Chrome CertificateTransparencyEnforcementDisabledForUrls -array "internal.corp.com" "*.dev.local"
3. Kiểm tra chuỗi Nginx hoặc Apache
Đôi khi chứng chỉ vẫn ổn, nhưng máy chủ không gửi đầy đủ thông tin đến trình duyệt. Nếu bạn sử dụng OCSP Stapling, máy chủ có thể thất bại trong việc truyền tải các SCT. Đảm bảo máy chủ web của bạn trỏ đến tệp "full chain", bao gồm các chứng chỉ trung gian.
Trong Nginx, cấu hình của bạn sẽ trông như thế này:
server {
listen 443 ssl;
# Sử dụng fullchain.pem, không chỉ cert.pem
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}
Xác minh: Lỗi đã thực sự được khắc phục chưa?
Đừng chỉ tin vào trình duyệt. Bạn có thể tự kiểm tra dữ liệu SCT một cách thủ công.
Phương pháp A: Sử dụng Chrome DevTools
- Mở trang web của bạn và nhấn
F12. - Điều hướng đến tab Security.
- Nhấp vào View Certificate.
- Tìm tab Details và tìm OID
1.3.6.1.4.1.11129.2.4.2. Đây là ID kỹ thuật cho các SCT. Nếu bạn thấy danh sách các mốc thời gian ở đây, Chrome sẽ chấp nhận.
Phương pháp B: Sử dụng OpenSSL
Chạy lệnh này để xem máy chủ của bạn có đang truyền phát danh sách SCT chính xác hay không:
openssl s_client -connect yourdomain.com:443 -status | grep -i "SCT"
Nếu kết quả trả về trống, máy chủ hoặc chứng chỉ của bạn vẫn thiếu dữ liệu minh bạch cần thiết.
Tổng kết
Lỗi NET::ERR_CERTIFICATE_TRANSPARENCY_REQUIRED không phải là một lỗi phần mềm; đó là một bức tường bảo mật. Đối với các trang web công khai, việc cấp lại chứng chỉ là lựa chọn tốt nhất. Đối với các công cụ nội bộ của doanh nghiệp, hãy sử dụng chính sách Chrome để đưa các tên miền của bạn vào danh sách trắng. Đừng bao giờ sử dụng --ignore-certificate-errors như một giải pháp lâu dài, vì nó khiến người dùng của bạn dễ bị tấn công xen giữa (man-in-the-middle).

