Website được thiết kế tối ưu cho thành viên chính thức. Hãy Đăng nhập hoặc Đăng ký để truy cập đầy đủ nội dung và chức năng. Nội dung bạn cần không thấy trên website, có thể do bạn chưa đăng nhập. Nếu là thành viên của website, bạn cũng có thể yêu cầu trong nhóm Zalo "CNTT" các nội dung bạn quan tâm.

23. Các lỗi SSL thường gặp và cách xử lý

ICT

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ý

  1. Kiểm tra chứng chỉ:

    sudo certbot certificates
  2. Gia hạn thủ công:

    sudo certbot renew
  3. Reload Nginx:

    sudo systemctl reload nginx
  4. Test lại auto-renew:

    sudo certbot renew --dry-run

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.com lỗi, nhưng domain.com lạ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.com

    • nhưng người dùng truy cập www.domain.com

  • Hoặc ngược lại


3.3. Cách xử lý

  1. Kiểm tra chứng chỉ:

    sudo certbot certificates
  2. Nếu thiếu domain, cấp lại:

    sudo certbot --nginx -d domain.com -d www.domain.com
  3. 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ý

  1. Kiểm tra firewall:

    sudo ufw status
  2. Mở port 443 nếu cần:

    sudo ufw allow 443/tcp
  3. Kiểm tra Nginx:

    sudo nginx -t
    sudo systemctl reload 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 if khô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 domain

  • Truy cập http://domain

  • Kiểm tra server_name

  • Mở 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ý

 
timedatectl sudo timedatectl set-ntp true 

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ự:

  1. Kiểm tra ngày hết hạn chứng chỉ

  2. Kiểm tra domain trong chứng chỉ

  3. Kiểm tra DNS

  4. Kiểm tra firewall (80, 443)

  5. Kiểm tra cấu hình Nginx

  6. Kiểm tra mixed content

  7. 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.