1. Vì sao lỗi SSL thường gây hoang mang khi vận hành?
SSL/HTTPS là lớp bảo mật nằm giữa trình duyệt và Web Server.
Khi có lỗi SSL:
Người dùng không vào được website
Trình duyệt hiển thị cảnh báo nghiêm trọng
Đội vận hành thường bị áp lực xử lý gấp
Điểm khó của lỗi SSL là:
Biểu hiện ở trình duyệt
Nhưng nguyên nhân có thể nằm ở:
DNS
Nginx
Certbot
Firewall
Thời gian hệ thống
Bài viết này giúp bạn nhận diện đúng lỗi – tìm đúng nguyên nhân – xử lý đúng chỗ.
2. Nhóm lỗi 1: Chứng chỉ hết hạn (Expired Certificate)
2.1. Biểu hiện
Trình duyệt báo:
Your connection is not private
Certificate expired
Website từng chạy HTTPS bình thường trước đó
2.2. Nguyên nhân phổ biến
Certbot auto-renew không chạy
Server bị tắt dài ngày
Firewall chặn port 80 trong lúc gia hạn
Không có kiểm tra định kỳ
2.3. Cách xử lý
Kiểm tra chứng chỉ:
Gia hạn thủ công:
Reload Nginx:
Test lại auto-renew:
Nguyên tắc:
Hết hạn SSL không phải lỗi kỹ thuật, mà là lỗi quy trình.
3. Nhóm lỗi 2: Domain không khớp chứng chỉ (Name Mismatch)
3.1. Biểu hiện
Trình duyệt báo:
Certificate does not match domain
Truy cập
www.domain.comlỗi, nhưngdomain.comlại bình thường (hoặc ngược lại)
3.2. Nguyên nhân
Chứng chỉ chỉ cấp cho:
domain.comnhưng người dùng truy cập
www.domain.com
Hoặc ngược lại
3.3. Cách xử lý
Kiểm tra chứng chỉ:
Nếu thiếu domain, cấp lại:
Chuẩn hóa www / non-www bằng redirect
Nguyên tắc:
Domain nào phục vụ HTTPS thì domain đó phải có trong chứng chỉ.
4. Nhóm lỗi 3: Chứng chỉ hợp lệ nhưng trình duyệt vẫn cảnh báo
4.1. Biểu hiện
HTTPS vẫn vào được
Nhưng trình duyệt hiện cảnh báo “Not fully secure”
4.2. Nguyên nhân phổ biến
Mixed content:
Load CSS/JS/image qua HTTP
CMS hard-code link HTTP
Plugin hoặc script bên thứ ba dùng HTTP
4.3. Cách xử lý
Kiểm tra Developer Tools → Console
Tìm tài nguyên HTTP bị load
Sửa:
URL tuyệt đối → HTTPS
URL tương đối (
/path)
Nguyên tắc:
HTTPS chuẩn không được phép tải bất kỳ tài nguyên HTTP nào.
5. Nhóm lỗi 4: SSL không vào được dù chứng chỉ còn hạn
5.1. Biểu hiện
HTTPS timeout
HTTP vẫn vào được
Không có cảnh báo hết hạn
5.2. Nguyên nhân thường gặp
Firewall chưa mở port 443
Nginx chưa listen port 443
Nginx chưa reload sau khi cài SSL
5.3. Cách xử lý
Kiểm tra firewall:
Mở port 443 nếu cần:
Kiểm tra Nginx:
6. Nhóm lỗi 5: Redirect loop (quay vòng HTTP ↔ HTTPS)
6.1. Biểu hiện
Trình duyệt báo:
Too many redirects
Website không truy cập được
6.2. Nguyên nhân phổ biến
Redirect HTTPS ở:
Nginx
CMS
Proxy/CDN
Redirect www/non-www chồng chéo
Dùng
ifkhông kiểm soát trong Nginx
6.3. Cách xử lý
HTTP server block: chỉ redirect
HTTPS server block: không redirect vòng
Tắt redirect trong CMS nếu đã redirect ở Nginx
Test từng lớp một
Nguyên tắc:
Redirect chỉ nên tồn tại ở một tầng duy nhất.
7. Nhóm lỗi 6: Certbot không cấp được SSL
7.1. Biểu hiện
Certbot báo lỗi xác thực
Không cấp được chứng chỉ mới
7.2. Nguyên nhân thường gặp
DNS chưa trỏ đúng IP
DNS chưa propagate
Firewall chặn port 80
server_name không khớp domain
7.3. Cách xử lý
Checklist nhanh:
dig domainTruy cập
http://domainKiểm tra
server_nameMở port 80
Chỉ khi HTTP hoạt động ổn định:
Certbot mới có thể cấp SSL.
8. Nhóm lỗi 7: Lỗi do thời gian hệ thống sai
8.1. Biểu hiện
Chứng chỉ hợp lệ
Nhưng trình duyệt báo lỗi không xác định
8.2. Nguyên nhân
Server lệch thời gian
NTP không đồng bộ
8.3. Cách xử lý
Nguyên tắc:
SSL phụ thuộc tuyệt đối vào thời gian hệ thống.
9. Checklist xử lý lỗi SSL theo thứ tự đúng
Khi gặp lỗi SSL, đừng đoán, hãy làm theo thứ tự:
Kiểm tra ngày hết hạn chứng chỉ
Kiểm tra domain trong chứng chỉ
Kiểm tra DNS
Kiểm tra firewall (80, 443)
Kiểm tra cấu hình Nginx
Kiểm tra mixed content
Kiểm tra thời gian hệ thống
10. Nguyên tắc vàng khi xử lý SSL trong production
Không xử lý vội trên Live nếu chưa hiểu nguyên nhân
Không “chữa cháy” bằng cách tắt HTTPS
Không copy cấu hình SSL từ server khác
Luôn test lại sau mỗi thay đổi
SSL là nền tảng tin cậy, xử lý sai sẽ làm mất niềm tin người dùng.
- Đăng nhập để gửi ý kiến