Hướng dẫn · Tên miền và SSL
Trỏ tên miền về VPS và cài SSL miễn phí Let's Encrypt
Tạo bản ghi DNS trỏ tên miền về VPS, cấu hình Nginx, cài chứng chỉ HTTPS miễn phí của Let's Encrypt và kiểm tra tự gia hạn.
Bước 1: Tạo bản ghi DNS
Vào trang quản lý DNS ở nơi bạn mua tên miền hoặc Cloudflare. Tạo hai bản ghi trỏ về IPv4 của VPS:
| Loại | Tên | Giá trị | Ý nghĩa |
|---|---|---|---|
| A | @ | IPv4 của VPS | tenmien.vn |
| A | www | IPv4 của VPS | www.tenmien.vn |
Nếu đã có bản ghi A hoặc AAAA cũ cho cùng tên, sửa hoặc xoá đi, tránh để hai địa chỉ khác nhau cùng tồn tại.
Khi cài chứng chỉ lần đầu, để bản ghi ở trạng thái DNS only (đám mây xám). Cài xong mới bật proxy và chọn SSL Full (strict).
Bước 2: Kiểm tra tên miền đã trỏ đúng
dig +short tenmien.vn
dig +short www.tenmien.vnCả hai lệnh phải trả về IP của VPS. Trên Windows dùng nslookup tenmien.vn. Bản ghi mới thường có hiệu lực sau vài phút, có nhà đăng ký mất vài giờ.
Bước 3: Cài Nginx và khai báo tên miền
sudo apt update
sudo apt install -y nginx
sudo mkdir -p /var/www/tenmien.vn
sudo nano /etc/nginx/sites-available/tenmien.vnDán cấu hình sau:
server {
listen 80;
server_name tenmien.vn www.tenmien.vn;
root /var/www/tenmien.vn;
index index.html index.php;
}Bật cấu hình, kiểm tra cú pháp và nạp lại Nginx:
sudo ln -s /etc/nginx/sites-available/tenmien.vn /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginxMở http://tenmien.vn, trang phải hiện từ VPS (trang trống hoặc lỗi 403 là bình thường vì thư mục chưa có nội dung).
Bước 4: Cài chứng chỉ SSL Let's Encrypt
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d tenmien.vn -d www.tenmien.vnCertbot hỏi email để báo khi chứng chỉ sắp hết hạn, yêu cầu đồng ý điều khoản, sau đó tự sửa cấu hình Nginx để dùng HTTPS và chuyển hướng HTTP sang HTTPS.
Bước 5: Kiểm tra tự gia hạn
Chứng chỉ Let's Encrypt có hạn 90 ngày. Gói Certbot trên Ubuntu cài sẵn bộ hẹn giờ tự gia hạn. Kiểm tra:
systemctl list-timers | grep certbot
sudo certbot renew --dry-runLệnh thứ hai chạy thử gia hạn mà không đổi chứng chỉ thật. Báo Congratulations, all simulated renewals succeeded là ổn.
Cách khác: dùng Nginx Proxy Manager
Nếu VPS chạy ứng dụng trong Docker và đã cài Nginx Proxy Manager, làm trên giao diện web, không cần dòng lệnh:
- Vào Hosts, chọn Proxy Hosts, bấm Add Proxy Host.
- Nhập tên miền, địa chỉ và cổng của ứng dụng cần trỏ tới.
- Ở thẻ SSL, chọn Request a new SSL Certificate, bật Force SSL, rồi lưu.
Lỗi thường gặp
Certbot báo Timeout during connect
Let's Encrypt không vào được cổng 80. Kiểm tra bản ghi DNS, và mở cổng nếu dùng ufw: sudo ufw allow 'Nginx Full'.
Cloudflare báo lỗi 526
Đang chọn SSL Full (strict) nhưng máy chủ chưa có chứng chỉ hợp lệ. Chuyển bản ghi về DNS only, cài chứng chỉ, rồi bật lại proxy.
Trình duyệt vẫn báo không an toàn
Trang còn tải ảnh hoặc tệp qua http://. Đổi các đường dẫn đó sang https://; với WordPress, sửa địa chỉ trang trong phần Cài đặt chung.