Khởi tạo VPS trong 60 giây · Hoàn tiền trong 7 ngày · Hỗ trợ kỹ thuật 24/7
Bitech Bitech
Hướng dẫn

Hướng dẫn cấp chứng chỉ SSL Wildcard Let's Encrypt bằng Certbot

Hướng dẫn chi tiết cách tạo và tự động gia hạn chứng chỉ SSL Wildcard của Let's Encrypt bằng Certbot thông qua phương thức xác minh DNS-01 challenge cho Nginx.

Chứng chỉ SSL Wildcard (*.domain.com) cho phép bạn bảo mật tên miền chính cùng tất cả các tên miền phụ (subdomain) chỉ với một chứng chỉ duy nhất. Bài viết này từ Bitech sẽ hướng dẫn bạn quy trình cấp chứng chỉ SSL Wildcard Let's Encrypt sử dụng Certbot thông qua phương thức xác minh DNS-01 challenge.

1. Tìm hiểu về phương thức DNS-01 Challenge

Khác với xác minh HTTP-01 truyền thống (yêu cầu đặt tệp xác thực trên web server), DNS-01 challenge yêu cầu bạn tạo một bản ghi TXT trong hệ thống quản lý DNS của tên miền. Đây là phương thức bắt buộc nếu bạn muốn đăng ký chứng chỉ SSL Wildcard từ Let's Encrypt.

2. Cài đặt Certbot và DNS Plugin

Trước tiên, bạn cần cài đặt Certbot trên máy chủ Linux. Nếu sử dụng các dịch vụ quản lý DNS hỗ trợ API (như Cloudflare, DigitalOcean, Route53), bạn nên cài đặt thêm plugin DNS tương ứng để tự động hóa quá trình xác minh.

Cài đặt Certbot và plugin DNS Cloudflare trên Ubuntu/Debian:

sudo apt update
sudo apt install certbot python3-certbot-dns-cloudflare -y

3. Tạo chứng chỉ SSL Wildcard

Phương pháp 1: Xác minh DNS thủ công

Nếu nhà cung cấp DNS của bạn không có plugin hỗ trợ tự động, bạn có thể thực hiện thủ công bằng lệnh:

sudo certbot certonly --manual --preferred-challenges dns \
  -d example.com -d "*.example.com"

Certbot sẽ cung cấp một chuỗi ký tự ngẫu nhiên. Bạn cần đăng nhập vào trang quản lý DNS của tên miền và thêm một bản ghi TXT:

  • Tên bản ghi (Host): _acme-challenge
  • Loại (Type): TXT
  • Giá trị (Value): Chuỗi ký tự mà Certbot cung cấp.

Sau khi thêm bản ghi, hãy đợi vài phút cho DNS lan truyền rồi nhấn Enter trên terminal để hoàn tất.

Phương pháp 2: Xác minh tự động qua DNS Plugin (Khuyên dùng)

Tạo tệp chứa thông tin API của nhà cung cấp DNS (ví dụ: ~/.secret/cloudflare.ini):

dns_cloudflare_api_token = YOUR_CLOUDFLARE_API_TOKEN

Phân quyền bảo mật cho tệp cấu hình:

chmod 600 ~/.secret/cloudflare.ini

Sau đó chạy lệnh cấp chứng chỉ tự động:

sudo certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials ~/.secret/cloudflare.ini \
  -d example.com \
  -d "*.example.com"

4. Cấu hình Nginx sử dụng chứng chỉ SSL Wildcard

Sau khi cấp thành công, các tệp chứng chỉ sẽ được lưu tại đường dẫn /etc/letsencrypt/live/example.com/. Mở tệp cấu hình Nginx của bạn và cập nhật các đường dẫn SSL:

server {
    listen 443 ssl;
    server_name example.com *.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    # Các cấu hình Nginx khác...
}

Kiểm tra lại cấu hình và khởi động lại Nginx:

sudo nginx -t
sudo systemctl reload nginx

5. Tự động gia hạn chứng chỉ

Chứng chỉ Let's Encrypt có thời hạn 90 ngày. Nếu bạn sử dụng DNS Plugin, Certbot có thể tự động gia hạn khi chứng chỉ sắp hết hạn.

Kiểm tra tính năng tự động gia hạn bằng lệnh dry-run:

sudo certbot renew --dry-run

Nếu lệnh chạy thành công, tiến trình cronjob hoặc systemd timer tích hợp sẵn của Certbot sẽ tự động thực hiện gia hạn định kỳ mà không cần can thiệp thủ công.

Kết luận

Sử dụng chứng chỉ SSL Wildcard giúp bạn tối ưu hóa việc quản lý SSL cho hệ thống có nhiều tên miền phụ. Việc kết hợp Certbot với DNS Plugin giúp tự động hóa hoàn toàn quy trình cấp mới và gia hạn, đảm bảo website của bạn luôn an toàn.


Ngày phát hành: 03/06/2026
Nguồn: www.digitalocean.com