Hướng dẫn chi tiết từng bước sử dụng chế độ Certbot Standalone để cấp và tự động gia hạn chứng chỉ SSL Let's Encrypt miễn phí trên hệ điều hành Ubuntu.
Giới thiệu về Certbot Standalone Mode
Certbot là công cụ mã nguồn mở phổ biến giúp tự động hóa quá trình cấp phát và gia hạn chứng chỉ SSL/TLS miễn phí từ Let's Encrypt. Trong đó, chế độ Standalone (độc lập) rất hữu ích khi máy chủ của bạn chưa cài đặt web server (như Nginx hay Apache) hoặc khi bạn muốn tạo chứng chỉ độc lập mà không làm thay đổi cấu hình hiện tại của dịch vụ web. Chế độ này sẽ tự động khởi tạo một web server tạm thời trên cổng 80 để xác thực tên miền với Let's Encrypt.
Yêu cầu chuẩn bị
- Một máy chủ chạy hệ điều hành Ubuntu (20.04 hoặc 22.04).
- Quyền truy cập người dùng có đặc quyền
sudohoặc tài khoảnroot. - Tên miền đã được cấu hình bản ghi A trỏ chính xác về địa chỉ IP của máy chủ.
- Cổng 80 (HTTP) và cổng 443 (HTTPS) đã được mở trên tường lửa.
Bước 1: Cài đặt Certbot trên Ubuntu
Phương thức cài đặt Certbot được khuyến nghị hiện nay là sử dụng gói snap. Hãy chạy các lệnh sau để đảm bảo hệ thống cập nhật và cài đặt Certbot:
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Bước 2: Tắt các dịch vụ đang chiếm dụng cổng 80
Chế độ Certbot Standalone cần sử dụng cổng 80 để lắng nghe yêu cầu xác minh ACME. Nếu bạn đang chạy Nginx, Apache hoặc bất kỳ ứng dụng nào trên cổng 80, bạn cần tạm thời dừng dịch vụ đó:
# Nếu đang chạy Nginx:
sudo systemctl stop nginx
# Nếu đang chạy Apache:
sudo systemctl stop apache2
Bước 3: Đăng ký chứng chỉ SSL với Certbot Standalone
Chạy lệnh Certbot với cờ certonly và --standalone. Đừng quên thay thế tên miền mẫu bằng tên miền thực tế của bạn:
sudo certbot certonly --standalone -d example.com -d www.example.com
Trong lần đầu tiên khởi chạy, hệ thống sẽ yêu cầu bạn:
- Nhập địa chỉ email để nhận thông báo gia hạn hoặc cảnh báo an ninh.
- Đồng ý với các điều khoản dịch vụ của Let's Encrypt (nhấn
Y). - Lựa chọn chia sẻ email với Electronic Frontier Foundation (EFF) hay không.
Khi quá trình xác minh thành công, Certbot sẽ lưu chứng chỉ và khóa tư nhân tại thư mục:
/etc/letsencrypt/live/example.com/
Trong đó gồm các tệp quan trọng:
fullchain.pem: Tệp chứng chỉ đầy đủ (dùng cho Nginx/Apache).privkey.pem: Khóa tư nhân (Private Key) của chứng chỉ.
Bước 4: Kiểm tra tính năng tự động gia hạn (Auto-renewal)
Chứng chỉ của Let's Encrypt có thời hạn 90 ngày. Certbot tự động tạo timer trên hệ thống để kiểm tra và gia hạn trước khi hết hạn. Bạn có thể kiểm tra quá trình gia hạn thử nghiệm bằng lệnh:
sudo certbot renew --dry-run
Nếu lệnh chạy không phát sinh lỗi, tính năng tự động gia hạn đã sẵn sàng hoạt động.
Xử lý sự cố thường gặp (Troubleshooting)
- Lỗi
Could not bind to IPv4 or IPv6: Sự cố này xảy ra khi cổng 80 đang bị chiếm dụng. Kiểm tra ứng dụng đang chạy cổng 80 bằng lệnhsudo lsof -i :80hoặcsudo netstat -tulpn | grep :80, sau đó tắt dịch vụ đó trước khi thực hiện lại. - Lỗi
Connection refusedhoặcTimeout: Kiểm tra lại cấu hình tường lửa UFW (sudo ufw status) hoặc Security Group trên nền tảng Cloud (DigitalOcean, AWS, Vultr...) để đảm bảo cổng 80 cho phép lưu lượng truy cập từ bên ngoài.
Ngày phát hành: 09/06/2026
Nguồn: www.digitalocean.com