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.

Cập nhật 01/11/2026Đọc khoảng 3 phút

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ạiTênGiá trịÝ nghĩa
A@IPv4 của VPStenmien.vn
AwwwIPv4 của VPSwww.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.

Dùng Cloudflare

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

bash
dig +short tenmien.vn
dig +short www.tenmien.vn

Cả 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

bash
sudo apt update
sudo apt install -y nginx
sudo mkdir -p /var/www/tenmien.vn
sudo nano /etc/nginx/sites-available/tenmien.vn

Dán cấu hình sau:

nginx
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:

bash
sudo ln -s /etc/nginx/sites-available/tenmien.vn /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

Mở 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

bash
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d tenmien.vn -d www.tenmien.vn

Certbot 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:

bash
systemctl list-timers | grep certbot
sudo certbot renew --dry-run

Lệ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:

  1. Vào Hosts, chọn Proxy Hosts, bấm Add Proxy Host.
  2. Nhập tên miền, địa chỉ và cổng của ứng dụng cần trỏ tới.
  3. Ở 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.

Hướng dẫn khác