Certbot hỗ trợ chế độ cài đặt SSL hoàn toàn tự động bằng tham số command line, giúp bạn không cần nhập email, domain hay xác nhận thủ công trong quá trình cài SSL.
Cách này rất phù hợp cho:
-
VPS tự động deploy
-
Script cài server
-
CI/CD
-
Hosting nhiều website
-
Tự động hóa quản trị hệ thống
1. Cài Certbot trên Ubuntu
Ubuntu + Nginx
sudo apt install certbot python3-certbot-nginx -y
Ubuntu + Apache
sudo apt install certbot python3-certbot-apache -y
2. Certbot Auto Install Command (No Prompts)
Dành cho Nginx
-d example.com \
-d www.example.com \
--non-interactive \
--agree-tos \
-m admin@example.com \
--redirect
Dành cho Apache
-d example.com \
-d www.example.com \
--non-interactive \
--agree-tos \
-m admin@example.com \
--redirect
3. Giải thích các tham số
|
Tham số |
Ý nghĩa |
|---|---|
|
--nginx |
Tự động cấu hình SSL cho Nginx |
|
--apache |
Tự động cấu hình SSL cho Apache |
|
-d |
Domain cần cài SSL |
|
--non-interactive |
Không hỏi nhập tay |
|
--agree-tos |
Tự động đồng ý điều khoản |
|
-m |
Email nhận thông báo SSL |
|
--redirect |
Tự động redirect HTTP sang HTTPS |
4. Ví dụ thực tế
SSL cho 1 domain
-d mydomain.com \
--non-interactive \
--agree-tos \
-m admin@mydomain.com \
--redirect
SSL cho nhiều subdomain
-d example.com \
-d www.example.com \
-d api.example.com \
-d mail.example.com \
--non-interactive \
--agree-tos \
-m admin@example.com \
--redirect
5. Kiểm tra SSL đã cài thành công
Hoặc kiểm tra trực tiếp:
6. Kiểm tra Auto Renew SSL
Let’s Encrypt có thời hạn 90 ngày. Certbot thường sẽ tự renew bằng systemd timer hoặc cron.
Kiểm tra bằng lệnh:
Nếu không có lỗi nghĩa là auto renew hoạt động bình thường.
systemctl list-timers | grep certbot
8. Một số lỗi thường gặp
Domain chưa trỏ IP
Lỗi:
DNS problem: NXDOMAIN
Cần kiểm tra:
dig yourdomain.com
Port 80 đang bị chặn
Certbot cần xác thực qua HTTP port 80.
Mở firewall:
sudo ufw allow 443
Nginx config lỗi
Kiểm tra trước khi chạy Certbot:
9. Gợi ý script tự động hoàn toàn
#!/bin/bash
DOMAIN="example.com"
EMAIL="admin@example.com"
apt update
apt install certbot python3-certbot-nginx -y
certbot --nginx \
-d $DOMAIN \
--non-interactive \
--agree-tos \
-m $EMAIL \
--redirect
Lưu file:
Cấp quyền chạy:
Thực thi:
Chúc các bạn thành công