Bạn cài SSL cho website trên VPS nhưng liên tục báo lỗi, hoặc đã cài xong mà website vẫn chưa chuyển sang HTTPS?
Phần lớn nguyên nhân nằm ở một trong 4 vấn đề quen thuộc: DNS chưa trỏ đúng, port 80/443 bị firewall chặn, web server chưa cấu hình đúng hoặc đã vượt giới hạn cấp chứng chỉ của Let’s Encrypt.
Trong bài viết này, chúng ta sẽ lần lượt kiểm tra từng nguyên nhân và cách xử lý, để xác định đúng lỗi và đưa website lên HTTPS.
Lỗi SSL khi cài VPS Hosting – Nguyên nhân & cách khắc phục

Nếu bạn đang cài SSL certificate (Let’s Encrypt hoặc chứng chỉ trả phí) cho website trên VPS nhưng báo lỗi, hoặc đã chạy lệnh nhưng website vẫn chưa lên HTTPS, phần lớn nguyên nhân sẽ nằm trong 4 trường hợp dưới đây.
1. DNS chưa trỏ đúng về VPS
Đây là nguyên nhân phổ biến nhất khiến không cài được SSL trên VPS bằng Let’s Encrypt. Hệ thống cấp chứng chỉ cần xác thực rằng domain đang trỏ đúng về IP của VPS trước khi cấp chứng chỉ.
Bạn có thể kiểm tra nhanh bằng một trong hai lệnh:
dig +short tenmien.com
hoặc:
nslookup tenmien.com
Nếu IP trả về khác với IP VPS đang sử dụng thì đây chính là nguyên nhân.
Trong trường hợp DNS vừa được thay đổi, bạn cần chờ một khoảng thời gian để DNS lan truyền (propagation). Thời gian này có thể từ vài phút đến vài giờ tùy nhà cung cấp domain. Hãy chờ đến khi domain trỏ đúng IP VPS rồi mới chạy lại lệnh cấp SSL.
2. Port 80/443 bị firewall chặn
Quá trình xác thực của Let’s Encrypt cần truy cập được vào port 80 (HTTP) từ bên ngoài đến VPS. Trong khi đó, website sử dụng HTTPS cần port 443 được mở để nhận kết nối.
Kiểm tra firewall trên Ubuntu bằng:
sudo ufw status
Hoặc trên CentOS/AlmaLinux:
sudo firewall-cmd --list-all
Kiểm tra xem port 80 và 443 có đang được allow hay không. Nếu bị chặn, có thể mở hai port này bằng:
sudo ufw allow 80,443/tcp
Sau đó thử cấp lại chứng chỉ SSL.
3. Web server (Apache/Nginx) chưa cấu hình đúng virtual host
Một lỗi khác cũng khá thường gặp là domain chưa có block cấu hình riêng trên web server, hoặc block đang trỏ sai document root. Khi đó, công cụ cấp SSL có thể không tìm thấy đúng website để gắn chứng chỉ.
Trước khi cài SSL, hãy kiểm tra cấu hình web server bằng:
Với Nginx:
sudo nginx -t
Với Apache:
sudo apachectl configtest
Đảm bảo cấu hình không có lỗi cú pháp, domain đã có virtual host riêng và virtual host đang trỏ đúng đến thư mục chứa website.
4. Vượt quá rate limit của Let’s Encrypt
Let’s Encrypt giới hạn tối đa 5 lần cấp chứng chỉ trùng nhau (duplicate certificate) cho cùng một domain trong 7 ngày.
Vì vậy, nếu bạn thử cài đi cài lại nhiều lần trong khi các lỗi ở trên chưa được xử lý dứt điểm, VPS có thể chạm giới hạn và bị từ chối cấp thêm chứng chỉ, dù sau đó mọi cấu hình đã chính xác.
Nếu thông báo lỗi xuất hiện các cụm từ như “too many certificates” hoặc “rate limit”, thì đây chính là nguyên nhân.
Trong trường hợp này, bạn cần chờ đủ 7 ngày. Hoặc có thể tạm thời sử dụng chứng chỉ staging của Let’s Encrypt để kiểm tra và hoàn thiện cấu hình trước, tránh làm tiêu tốn thêm lượt cấp chứng chỉ thật.
Như vậy, hãy xử lý lần lượt 4 nguyên nhân theo đúng thứ tự: DNS → firewall → web server → rate limit. Trong phần lớn trường hợp, việc kiểm tra theo đúng trình tự này sẽ giúp bạn xác định và khắc phục được lỗi SSL.
Nếu đang sử dụng một control panel cụ thể, bạn có thể tham khảo thêm các hướng dẫn riêng:
Nếu muốn cài SSL/Let’s Encrypt từ đầu theo hướng dẫn tổng quát cho VPS, xem thêm [LINK: Cách cài đặt SSL/Let’s Encrypt cho VPS].
