Nginx và HTTPS trên VPS: cấu hình và gia hạn TLS
Nginx có thể đặt trước ứng dụng trên VPS để phục vụ domain và HTTPS. Quá trình triển khai gồm DNS, đường tới upstream, chứng chỉ và gia hạn; một website mở được HTTPS hôm nay vẫn cần giám sát để không hết hạn sau này.

Nginx có thể đặt trước ứng dụng trên VPS để phục vụ domain và HTTPS. Quá trình triển khai gồm DNS, đường tới upstream, chứng chỉ và gia hạn; một website mở được HTTPS hôm nay vẫn cần giám sát để không hết hạn sau này.
Điều kiện của ví dụ
- VPS Ubuntu có sudo; Nginx đã cài theo nguồn phù hợp.
- Domain bạn sở hữu trỏ đúng IP, kiểm tra cả A và AAAA.
- Ứng dụng HTTP đang chạy tại 127.0.0.1:3000.
- TCP 80/443 được mở phù hợp firewall và nhà cung cấp.
- Không ghi đè site production mà chưa sao lưu cấu hình.
app.example.com là domain minh họa, thay bằng domain của bạn. Cấu hình dưới đây là nền tảng cho app HTTP; WebSocket, streaming và tải file lớn cần bổ sung theo yêu cầu riêng.
Bước 1: kiểm tra upstream
sudo ss -lntp
curl -I http://127.0.0.1:3000Nếu app không hỗ trợ HEAD, thử request GET phù hợp không tạo dữ liệu. Kiểm tra response và log trước khi thêm proxy; Nginx không sửa được ứng dụng chưa chạy hoặc listen sai địa chỉ.
Bước 2: tạo site HTTP
server {
listen 80;
server_name app.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Lưu vào site riêng và kích hoạt theo layout của gói Nginx đã cài. Cấu hình chỉ có listen IPv4 trong ví dụ; nếu domain có AAAA cần thiết kế listener và firewall IPv6 đúng. Không xóa các site khác để tránh ảnh hưởng dịch vụ đang chạy.
sudo nginx -t
sudo systemctl reload nginxChỉ reload sau khi kiểm tra thành công trên hệ dùng service nginx. Khi có proxy khác phía trước, phải cấu hình cách tin cậy forwarded header phù hợp; app không nên tin mọi header do client gửi trực tiếp.
Bước 3: cấp chứng chỉ
Cài Certbot và plugin Nginx theo hướng dẫn chính thức cho hệ điều hành, chọn một phương thức cài nhất quán. Ví dụ bên dưới dùng plugin --nginx, có thể chỉnh cấu hình site; sao lưu trước khi chạy.
sudo certbot --nginx -d app.example.com
sudo nginx -tViệc xác minh domain phải đáp ứng phương pháp challenge đã chọn. Nếu có CDN/proxy, AAAA sai hoặc cổng xác minh bị chặn, cần kiểm tra đường thực tế thay vì lặp yêu cầu cấp chứng chỉ nhiều lần.
Bước 4: gia hạn và nghiệm thu
sudo certbot certificates
sudo certbot renew --dry-run
systemctl list-timersDry-run thử quy trình gia hạn nên có kết nối tới dịch vụ xác minh; không phải phép thử offline. Xác nhận timer/cron thực tế và cách Nginx nạp chứng chỉ sau gia hạn. Thêm kiểm tra hạn chứng chỉ từ phía client.
| Triệu chứng | Điểm kiểm tra |
|---|---|
| 502 | Upstream dừng, port hoặc địa chỉ sai |
| TLS không hợp lệ | Domain, certificate chain, hạn và server block |
| HTTP đi sai site | server_name và site mặc định |
| Upload thất bại | Limit proxy và ứng dụng |
| Stream/WebSocket lỗi | Header, timeout và buffering theo app |
Bảo mật và xử lý thay đổi
Giữ private key chứng chỉ với quyền phù hợp, không đưa vào repo. HTTPS bảo vệ đường truyền nhưng không thay authorization, cập nhật hay backup. Nếu app chỉ cần được truy cập qua proxy, hạn chế cổng upstream từ Internet.
Khi deploy gây lỗi, lưu log, kiểm tra nginx -t, quay lại cấu hình trước đã xác nhận rồi reload. Không dùng một cấu hình TLS trên Internet mà chưa kiểm tra với bản Nginx/OpenSSL đang chạy.
Xem Cloud VPS. Khi yêu cầu hỗ trợ, gửi domain, sơ đồ CDN/proxy và lỗi đã che thông tin nhạy cảm; không gửi private key.
HTTPS có bảo vệ database khỏi truy cập trái phép không?
Không. Database cần network, credential và quyền riêng; HTTPS chỉ là một lớp bảo vệ đường truyền web.
Chứng chỉ có tự gia hạn sau khi cài Certbot không?
Cần kiểm tra timer/cron và thử renewal trên hệ thực tế. Không mặc định đã đúng chỉ vì lần cấp đầu thành công.
Cần GPU cho workload này?
NOC aigpu.vn hỗ trợ chọn GPU, VRAM và cấu hình phù hợp. PoC trong 24 giờ.
Bài viết liên quan
Bảo mậtChống DDoS cho máy chủ dedicated: lớp L3/L4/L7 thực tế
Phân biệt chống nghẽn đường truyền và chống quá tải ứng dụng; xác định trách nhiệm nhà cung cấp và đội vận hành.
Cloud VPSDedicated Server hay VPS: khi nào nên thuê máy chủ riêng?
Chọn VPS hay dedicated dựa trên tải, giới hạn dịch vụ, ngân sách và yêu cầu kiểm soát; không mặc định mọi doanh nghiệp cần máy vật lý.
Cloud VPSVPS chậm: chẩn đoán CPU, RAM, disk và network
VPS chậm không luôn do gói cấu hình quá nhỏ. Truy vấn database, thiếu RAM, chờ storage, giới hạn CPU hoặc mạng bên ngoài đều có thể tạo cùng triệu chứng. Hãy đo ở đúng thời điểm lỗi trước khi restart hoặc nâng cấp.