Kích hoạt HTTPS cho website với chứng chỉ SSL miễn phí từ Let’s Encrypt và công cụ tự động Certbot là cách đơn giản và hiệu quả nhất để mã hóa dữ liệu, tạo dựng lòng tin với khách hàng qua biểu tượng ổ khóa an toàn, và cải thiện thứ hạng SEO trên Google. Bài viết này sẽ hướng dẫn bạn chi tiết các bước cài đặt cho cả web server Nginx và Apache.
1. Điều kiện trước khi cài đặt
Trước khi bắt đầu quá trình cài đặt, bạn cần đảm bảo các yêu cầu sau đã được đáp ứng:
- Tên miền (và các tên miền phụ nếu có) đã được cấu hình bản ghi DNS (A hoặc AAAA) trỏ chính xác đến địa chỉ IP công khai của máy chủ.
- Tường lửa (firewall) của máy chủ cho phép lưu lượng truy cập đến trên port 80 (HTTP) và 443 (HTTPS).
- Máy chủ chỉ đang chạy một trong hai dịch vụ máy chủ web (Nginx hoặc Apache) để tránh xung đột.
- Website có thể truy cập được thông qua giao thức HTTP, ví dụ: http://your_domain.com.

2. Cách cài đặt Certbot (chọn theo webserver đang sử dụng)
Lưu ý khi cài đặt
Trường hợp server sử dụng Nginx
Trường hợp server sử dụng Apache
Kiểm tra Certbot sau khi cài đặt
Lưu ý khi cài đặt
- Luôn cài đặt plugin Certbot tương thích với máy chủ web (web server) mà hệ thống đang vận hành.
- Hạn chế việc cài đặt đồng thời Nginx và Apache khi không có yêu cầu cụ thể, nhằm phòng tránh các xung đột dịch vụ không mong muốn.
Trường hợp server sử dụng Nginx
1. Ubuntu / Debian
apt update
apt install -y certbot python3-certbot-nginx2. CentOS / RHEL / AlmaLinux / Rocky Linux
dnf install -y epel-release
dnf install -y certbot python3-certbot-nginxTrường hợp server sử dụng Apache
1. Ubuntu / Debian
apt update
apt install -y certbot python3-certbot-apache2. CentOS / RHEL / AlmaLinux / Rocky Linux
dnf install -y epel-release
dnf install -y certbot python3-certbot-apacheKiểm tra Certbot sau khi cài đặt
Sau khi cài đặt hoàn tất (Nginx hoặc Apache), bạn kiểm tra Certbot bằng lệnh:
certbot --versionNếu hiển thị phiên bản Certbot, việc cài đặt đã thành công.

3. Hướng dẫn cấu hình website HTTP
3.1 Ví dụ cấu hình HTTP cho Nginx
3.2 Ví dụ cấu hình HTTP cho Apache
Website cần đảm bảo khả năng truy cập thông qua giao thức HTTP. Đây là yêu cầu tiên quyết trước khi tiến hành cài đặt chứng chỉ SSL.
Lưu ý
Tên miền demo.vietnix.tech được sử dụng trong hướng dẫn này chỉ mang tính chất minh họa.

3.1 Ví dụ cấu hình HTTP cho Nginx
File cấu hình ví dụ
/etc/nginx/conf.d/demo.vietnix.tech.conf
server {
listen 80;
server_name demo.vietnix.tech www.demo.vietnix.tech;
root /var/www/demo.vietnix.tech;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
}Kiểm tra và reload
nginx -t
systemctl reload nginx
3.2 Ví dụ cấu hình HTTP cho Apache
File cấu hình ví dụ
Ubuntu/Debian:
/etc/apache2/sites-available/demo.vietnix.tech.confRHEL-based:
/etc/httpd/conf.d/demo.vietnix.tech.conf
<VirtualHost *:80>
ServerName demo.vietnix.tech
ServerAlias www.demo.vietnix.tech
DocumentRoot /var/www/demo.vietnix.tech
<Directory /var/www/demo.vietnix.tech>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>Kiểm tra và reload
apachectl configtest || httpd -t
systemctl reload apache2 || systemctl reload httpd
4. Cài đặt SSL Let’s Encrypt cho Nginx
Bước 1: Chạy Certbot cho Nginx
Bước 2: Kiểm tra cấu hình và reload Nginx
Bước 1: Chạy Certbot cho Nginx
certbot --nginx -d your-domain.com -d www.your-domain.com
```
Enter email address (used for urgent renewal and security notices)
→ Nhập email dùng để nhận thông báo gia hạn và cảnh báo bảo mật.
Do you agree? (Y)es/(N)o: Y
→ Nhập Y để đồng ý điều khoản sử dụng của Let’s Encrypt.
Would you be willing ... share your email address with the EFF?
(Y)es/(N)o: Y
→ Có thể chọn Y hoặc N, không ảnh hưởng đến việc cấp SSL.
Successfully received certificate.
→ Chứng chỉ SSL đã được cấp thành công.
Certificate is saved at:
/etc/letsencrypt/live/demo.vietnix.tech/fullchain.pem
Key is saved at:
/etc/letsencrypt/live/demo.vietnix.tech/privkey.pem
→ Vị trí lưu file chứng chỉ và private key.
Certbot has set up a scheduled task to automatically renew this certificate
→ Certbot đã thiết lập tự động gia hạn SSL.
Successfully deployed certificate for demo.vietnix.tech
→ Certbot đã tự động gắn SSL vào file cấu hình Nginx:
/etc/nginx/conf.d/demo.vietnix.tech.conf
Congratulations! You have successfully enabled HTTPS
→ Website đã bật HTTPS thành công.
Bước 2: Kiểm tra cấu hình và reload Nginx
nginx -t
systemctl reload nginx
Bước 3: Kiểm tra kết quả
curl -I https://your-domain.com
curl -I http://your-domain.com

5. Cài đặt SSL Let’s Encrypt cho Apache
Bước 1: Chạy Certbot cho Apache
Bước 2: Kiểm tra cấu hình và reload Apache
Bước 3: Kiểm tra kết quả
Bước 1: Chạy Certbot cho Apache
Chạy lệnh để bắt đầu cài đặt:
certbot --apache -d your-domain.com -d www.your-domain.com
```
Enter email address (used for urgent renewal and security notices)
→ Nhập email nhận thông báo gia hạn và bảo mật.
Do you agree? (Y)es/(N)o: Y
→ Nhập Y để đồng ý điều khoản Let’s Encrypt.
Would you be willing ... share your email address with the EFF?
(Y)es/(N)o: Y
→ Tùy chọn, không ảnh hưởng đến SSL.
Successfully received certificate.
→ SSL đã được cấp thành công.
Certificate is saved at:
/etc/letsencrypt/live/demo.vietnix.tech/fullchain.pem
/etc/letsencrypt/live/demo.vietnix.tech/privkey.pem
→ Đường dẫn lưu file chứng chỉ SSL.
Certbot has set up a scheduled task to automatically renew this certificate
→ Đã thiết lập tự động gia hạn SSL.
Successfully deployed certificate for demo.vietnix.tech
→ Certbot tạo và gắn SSL vào file:
/etc/apache2/sites-available/000-default-le-ssl.conf
Which virtual host would you like to choose?
→ Apache có nhiều VirtualHost, cần chọn cấu hình đúng cho domain.
Select the appropriate number [1-2]: 2
→ Chọn VirtualHost HTTPS của domain.
Congratulations! You have successfully enabled HTTPS
→ HTTPS đã được bật thành công cho website.
```
Bước 2: Kiểm tra cấu hình và reload Apache
Đầu tiên, hãy xác thực cú pháp của các tệp cấu hình Apache để đảm bảo không có lỗi nào phát sinh. Sau đó, tiến hành tải lại dịch vụ để áp dụng các thay đổi:
apachectl configtest || httpd -t
systemctl reload apache2 || systemctl reload httpd
Bước 3: Kiểm tra kết quả
Sử dụng lệnh curl để kiểm tra tiêu đề (header) phản hồi từ máy chủ, qua đó xác nhận rằng chứng chỉ SSL đã hoạt động và việc chuyển hướng từ HTTP sang HTTPS đã được thiết lập chính xác.
curl -I https://your-domain.com
curl -I http://your-domain.com

6. Vị trí lưu file chứng chỉ SSL
Như vậy, quá trình cài đặt chứng chỉ SSL Let’s Encrypt bằng công cụ Certbot đã hoàn tất thành công. Các tệp tin quan trọng bao gồm chứng chỉ và khóa riêng tư được lưu trữ tại các đường dẫn sau:
Certificate (Full chain):
/etc/letsencrypt/live/your-domain.com/fullchain.pemPrivate Key:
/etc/letsencrypt/live/your-domain.com/privkey.pemĐể liệt kê và kiểm tra thông tin về các chứng chỉ đang được quản lý, bạn có thể sử dụng lệnh:
certbot certificates
7. Tự động gia hạn SSL
Bước 1: Kiểm tra gia hạn thử nghiệm
Để kiểm tra xem quá trình gia hạn tự động có thể diễn ra thành công hay không mà không làm thay đổi các tệp tin chứng chỉ hiện tại, bạn có thể chạy lệnh sau:
certbot renew --dry-run
Bước 2: Kiểm tra systemd timer (khuyến nghị)
Trên các hệ thống hiện đại sử dụng systemd, Certbot thường tự động tạo một dịch vụ timer để xử lý việc gia hạn. Bạn có thể kiểm tra trạng thái của dịch vụ này bằng các lệnh:
systemctl list-timers | grep certbot
systemctl status certbot.timerNếu certbot.timerđang active, hệ thống sẽ tự gia hạn và không cần cấu hình cron.

Bước 3: Thiết lập cron (phương án dự phòng)
Phương pháp này được áp dụng trong các trường hợp sau:
- Máy chủ không sử dụng systemd làm trình quản lý dịch vụ.
- Dịch vụ certbot.timer không khả dụng hoặc không được cấu hình.
- Môi trường triển khai đặc thù, chẳng hạn như container hoặc các hệ điều hành phiên bản cũ.
Mở tệp cấu hình cron của người dùng hiện tại:
crontab -eThêm:
0 6 * * * /usr/bin/certbot renew --quietTác vụ này được lên lịch để tự động chạy vào lúc 6 giờ sáng mỗi ngày. Lệnh certbot renew sẽ kiểm tra thời hạn của chứng chỉ và chỉ thực hiện gia hạn nếu chứng chỉ sắp hết hiệu lực.
Bằng cách áp dụng các bước hướng dẫn cài đặt SSL Let’s Encrypt với Certbot như trên, bạn không chỉ nâng cao đáng kể tính bảo mật cho website của mình mà còn góp phần cải thiện uy tín và thứ hạng trên các công cụ tìm kiếm. Trong quá trình thực hiện nếu gặp bất kỳ khó khăn nào, bạn có thể liên hệ Vietnix để được hỗ trợ kịp thời.
VIETNIX – DỊCH VỤ HOSTING, VPS TỐC ĐỘ CAO, ỔN ĐỊNH, BẢO MẬT
- Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh
- Điện thoại: 1800 1093
- Email liên hệ: sales@vietnix.com.vn
- Website: https://vietnix.vn/

