Bài viết này hướng dẫn cách cài đặt SSL Let’s Encrypt cho vnengineer.net và *.vnengineer.net bằng Certbot + DNS-01 challenge, kèm theo reload Nginx và xử lý lỗi tạo thư mục -0001 khi chạy nhiều lần.
sudo apt update sudo apt install certbot -y
sudo certbot certonly --manual \ --preferred-challenges dns \ --cert-name vnengineer.net \ -d "*.vnengineer.net" \ -d vnengineer.net
Lệnh trên tạo một certificate duy nhất dùng chung cho:
vnengineer.net*.vnengineer.netKhi Certbot hiển thị:
Please deploy a DNS TXT record under the name: _acme-challenge.vnengineer.net
Tạo bản ghi DNS:
| Thuộc tính | Giá trị |
|---|---|
| Type | TXT |
| Name / Host | _acme-challenge |
| Value | Token do Certbot cung cấp |
| TTL | Auto / 60 |
⚠️ Không nhập _acme-challenge.vnengineer.net vào ô Name để tránh lỗi nhân đôi domain.
dig TXT _acme-challenge.vnengineer.net +short
Nếu thấy token hiển thị đúng → quay lại terminal và nhấn Enter.
Sau khi xác thực thành công:
/etc/letsencrypt/live/vnengineer.net/ ├── fullchain.pem ├── privkey.pem
server {
listen 443 ssl;
server_name vnengineer.net *.vnengineer.net;
ssl_certificate /etc/letsencrypt/live/vnengineer.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vnengineer.net/privkey.pem;
}
⚠️ Bước này bắt buộc, rất hay bị quên.
sudo nginx -t sudo systemctl reload nginx
vnengineer.net-0001sudo certbot certificates
-0001 và cấp lại (khuyên dùng)sudo certbot delete --cert-name vnengineer.net-0001
Sau đó chạy lại:
sudo certbot certonly --manual \ --preferred-challenges dns \ --cert-name vnengineer.net \ -d "*.vnengineer.net" \ -d vnengineer.net
sudo rm -rf /etc/letsencrypt/live/vnengineer.net
sudo ln -s /etc/letsencrypt/live/vnengineer.net-0001 \
/etc/letsencrypt/live/vnengineer.net
-0001 lần sau--cert-name vnengineer.net-0001 trong NginxVới Certbot + DNS-01 challenge, bạn chỉ cần một certificate duy nhất cho toàn bộ hệ thống vnengineer.net.
Chỉ cần nhớ:
-0001