Nếu bạn tự cài WordPress trên VPS, SSL gần như là bước bắt buộc. Nó không chỉ giúp trình duyệt hiện ổ khóa HTTPS, mà còn bảo vệ thông tin đăng nhập, form liên hệ, giỏ hàng và các phiên làm việc trong khu vực quản trị.
Tin tốt là bạn không nhất thiết phải mua SSL trả phí. Với Let’s Encrypt, bạn có thể cài SSL miễn phí cho WordPress trên VPS và để hệ thống tự gia hạn. Bài này đi theo cách thực tế: VPS Ubuntu, Certbot, Nginx hoặc Apache.
SSL miễn phí trên VPS là gì và có đủ an toàn không?
SSL, chính xác hơn là TLS, là lớp mã hóa dữ liệu giữa trình duyệt và máy chủ. Khi website dùng đúng, địa chỉ chuyển từ http:// sang https://.
Let’s Encrypt là tổ chức cấp chứng chỉ SSL miễn phí và được các trình duyệt hiện đại tin cậy. Với blog, website công ty, landing page hoặc WordPress bán hàng nhỏ đến vừa, Let’s Encrypt thường là đủ. “Miễn phí” ở đây không có nghĩa là mã hóa kém hơn. Khác biệt so với SSL trả phí chủ yếu nằm ở xác minh doanh nghiệp, bảo hiểm hoặc nhu cầu đặc thù.

Trước khi cài SSL cho WordPress trên VPS cần chuẩn bị gì?
Phần chuẩn bị quan trọng hơn nhiều người nghĩ. Tôi gặp khá nhiều ca cài Certbot lỗi không phải vì Certbot khó, mà vì DNS sai, port bị chặn hoặc web server chưa nhận đúng tên miền.
- Website WordPress đã chạy được bằng HTTP.
- Domain đã trỏ bản ghi A về đúng IP VPS.
- Port
80và443đang mở. - Bạn biết VPS dùng Nginx hay Apache.
- Bạn có quyền SSH bằng user có
sudohoặc root.
Nếu WordPress chưa cài xong, hãy xử lý phần đó trước. Bạn có thể xem lại bài cách cài WordPress trên VPS Ubuntu. Nếu domain chưa trỏ đúng, bài cách trỏ domain về VPS sẽ sát nhu cầu hơn.
Cách kiểm tra domain đã trỏ về VPS chưa
SSH vào máy tính hoặc VPS rồi kiểm tra:
dig tenmiencuaban.com +short
Kết quả nên là IP VPS của bạn. Nếu chưa đúng, hãy sửa bản ghi A tại nơi quản lý domain và chờ DNS cập nhật. Với bản www, bạn có thể dùng A record trỏ về cùng IP hoặc CNAME trỏ về domain gốc.
Cài Certbot trên VPS Ubuntu như thế nào?
Certbot là công cụ xin, cài và gia hạn chứng chỉ từ Let’s Encrypt. Trước hết, SSH vào VPS và cập nhật package:
sudo apt update
Nếu dùng Nginx:
sudo apt install certbot python3-certbot-nginx -y
Nếu dùng Apache:
sudo apt install certbot python3-certbot-apache -y
Để kiểm tra web server đang chạy, dùng:
sudo systemctl status nginx
sudo systemctl status apache2
Cách cài SSL miễn phí cho WordPress trên VPS dùng Nginx
Với Nginx, Certbot có thể tự đọc server block và thêm cấu hình HTTPS. Trước khi chạy, kiểm tra Nginx:
sudo nginx -t
sudo systemctl reload nginx
Sau đó xin chứng chỉ:
sudo certbot --nginx -d tenmiencuaban.com -d www.tenmiencuaban.com
Trong quá trình chạy, Certbot thường hỏi email, điều khoản sử dụng và có redirect HTTP sang HTTPS hay không. Với WordPress thông thường, bạn nên chọn redirect. Như vậy người dùng vào bản HTTP cũng tự chuyển sang HTTPS.
Một chi tiết dễ sai: file cấu hình Nginx cần có server_name đúng domain.
server_name tenmiencuaban.com www.tenmiencuaban.com;
Cách cài SSL miễn phí cho WordPress trên VPS dùng Apache
Nếu VPS dùng Apache, quy trình cũng tương tự. Kiểm tra cấu hình trước:
sudo apache2ctl configtest
sudo systemctl reload apache2
Rồi chạy Certbot:
sudo certbot --apache -d tenmiencuaban.com -d www.tenmiencuaban.com
Certbot sẽ tìm VirtualHost tương ứng, cấp chứng chỉ và thêm cấu hình HTTPS. Nếu có lựa chọn redirect, bạn nên bật để tránh website tồn tại song song ở cả HTTP và HTTPS.

Sau khi cài SSL, cần chỉnh gì trong WordPress?
Cài SSL ở tầng VPS chưa phải là xong hẳn. Trong WordPress Admin, vào Settings > General và đổi hai dòng này sang HTTPS:
WordPress Address (URL): https://tenmiencuaban.com
Site Address (URL): https://tenmiencuaban.com
Sau đó xóa cache nếu bạn dùng LiteSpeed Cache, WP Rocket, W3 Total Cache hoặc plugin tương tự. Nếu trang vẫn báo “Not secure”, nhiều khả năng là mixed content: trang chính đã HTTPS nhưng ảnh, CSS hoặc JS cũ vẫn được gọi bằng HTTP.
Trước khi thay URL hàng loạt trong database, hãy backup. Công cụ như Better Search Replace có thể giúp đổi http://domain sang https://domain, nhưng làm sai vẫn có thể khiến website lỗi hiển thị.
Cách kiểm tra SSL đã hoạt động đúng chưa
Hãy mở đủ các phiên bản URL:
http://tenmiencuaban.com
http://www.tenmiencuaban.com
https://tenmiencuaban.com
https://www.tenmiencuaban.com
Kết quả tốt là tất cả chuyển về một bản HTTPS chính. Bạn cũng có thể dùng:
curl -I http://tenmiencuaban.com
Nếu redirect đúng, response sẽ có mã 301 hoặc 308 và dòng location trỏ sang HTTPS. Muốn kiểm tra kỹ hơn, dùng SSL Labs tại https://www.ssllabs.com/ssltest/.
Cách gia hạn SSL Let’s Encrypt tự động
Chứng chỉ Let’s Encrypt có hạn 90 ngày. Certbot trên Ubuntu thường tự tạo timer để gia hạn. Bạn có thể kiểm tra:
systemctl list-timers | grep certbot
Và chạy thử gia hạn:
sudo certbot renew --dry-run
Nếu lệnh dry-run không lỗi, cơ chế gia hạn thường đã ổn. Dù vậy, nếu sau này bạn đổi DNS, bật firewall hoặc thay reverse proxy, nên kiểm tra lại.
Lỗi thường gặp khi cài SSL cho VPS
Lỗi hay gặp nhất là domain chưa trỏ đúng IP VPS. Hãy kiểm tra bằng dig trước khi nghi ngờ Certbot.
Lỗi thứ hai là port 80 hoặc 443 bị chặn. Nếu dùng UFW, kiểm tra bằng sudo ufw status. Với Nginx có thể mở:
sudo ufw allow 'Nginx Full'
Với Apache:
sudo ufw allow 'Apache Full'
Lỗi “too many redirects” thường xuất hiện khi Cloudflare, plugin redirect và cấu hình HTTPS trên VPS chồng chéo nhau. Nếu dùng Cloudflare và VPS đã có SSL, bạn nên dùng chế độ Full hoặc Full (strict), tránh Flexible.
Nên cài SSL ở VPS, Cloudflare hay plugin WordPress?
Nếu WordPress chạy trên VPS riêng, tôi khuyên bạn cài SSL trực tiếp trên VPS trước. Cloudflare có thể dùng thêm, nhưng không nên chỉ “giả lập HTTPS” ở ngoài trong khi server phía sau vẫn HTTP, nhất là website có đăng nhập hoặc thanh toán.
Plugin WordPress chỉ hỗ trợ sửa URL, ép HTTPS hoặc xử lý mixed content. Plugin không thay thế chứng chỉ SSL ở tầng máy chủ.
Kết luận
Cách cài SSL miễn phí cho WordPress trên VPS không quá phức tạp nếu bạn đi đúng thứ tự: domain trỏ đúng IP, web server chạy ổn, port 80/443 mở, sau đó dùng Certbot để xin chứng chỉ Let’s Encrypt.
Sau khi bật HTTPS, đừng quên đổi URL trong WordPress, kiểm tra redirect và sửa mixed content. Một VPS ổn định cộng với SSL đúng cách sẽ giúp website an toàn hơn, chuyên nghiệp hơn và thân thiện hơn với SEO.
Câu hỏi thường gặp
Cài SSL miễn phí cho VPS có mất phí gia hạn không?
Không. Let's Encrypt miễn phí cả lúc cấp mới và gia hạn. Chứng chỉ thường có hạn 90 ngày, nhưng Certbot có thể tự gia hạn bằng systemd timer hoặc cron.
Một VPS có cài SSL cho nhiều website được không?
Có. Một VPS có thể cài SSL cho nhiều domain nếu mỗi domain đã trỏ đúng về VPS và web server có cấu hình server block hoặc virtual host riêng.
Let's Encrypt có an toàn cho website bán hàng không?
Có, với đa số website WordPress và WooCommerce nhỏ đến vừa. SSL chỉ là một phần bảo mật; bạn vẫn cần cập nhật mã nguồn, plugin, mật khẩu mạnh và backup.
Không biết VPS dùng Nginx hay Apache thì kiểm tra thế nào?
Bạn có thể SSH vào VPS rồi chạy systemctl status nginx và systemctl status apache2. Dịch vụ nào đang active thường là web server đang dùng, nhưng một số hệ thống có thể chạy cả hai.
Cài SSL xong có ảnh hưởng SEO không?
Có thể tốt hơn nếu cấu hình đúng. Bạn nên redirect 301 từ HTTP sang HTTPS, sửa mixed content và tránh để nhiều phiên bản URL trùng lặp cùng index.

