Cách cấu hình SSL miễn phí cho website Next.js chạy trên VPS với Let’s Encrypt
Website không có HTTPS → trình duyệt cảnh báo, người dùng mất niềm tin, SEO giảm, API dễ lỗi khi gọi từ frontend. Với ứng dụng Next.js chạy trên VPS, cấu hình SSL không khó nếu dùng Let’s Encrypt + Nginx + Certbot. Chi phí: 0đ. Hiệu quả: domain có ổ khóa xanh, tự động gia hạn, bảo mật tốt hơn.
Bài viết này hướng dẫn cấu hình SSL miễn phí cho website Next.js deploy trên VPS Ubuntu, chạy bằng Node.js/PM2, reverse proxy qua Nginx.
Mô hình triển khai phổ biến
Kiến trúc thường dùng:
– Next.js app chạy nội bộ tại localhost:3000
– Nginx nhận req từ internet qua port 80/443
– Let’s Encrypt cấp SSL cert cho domain
– Certbot tự động cấu hình HTTPS cho Nginx
– PM2 giữ app luôn chạy
Luồng req:
User → https://domain.com → Nginx:443 → localhost:3000 → Next.js
Next.js không cần tự xử lý SSL. Nginx làm TLS termination → nhẹ, chuẩn, dễ bảo trì.
Certbot sẽ hỏi email, điều khoản, redirect HTTPS. Nên chọn redirect toàn bộ HTTP → HTTPS.
Quy trình:
1. Certbot đọc Nginx config.
2. Let’s Encrypt xác minh domain qua port 80.
3. Certbot tải cert về VPS.
4. Certbot tự sửa Nginx config.
5. Nginx reload.
6. Website có HTTPS.
Sau khi thành công, sẽ thấy dạng:
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/example.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/example.com/privkey.pem
Mở:
https://example.com
Nếu hiện ổ khóa → xong.
Nginx config sau khi có SSL
Certbot thường tự thêm block HTTPS. Config sẽ gần giống:
Cấu hình SSL miễn phí cho Next.js trên VPS không cần phức tạp. Cách ổn định nhất: để Next.js chạy nội bộ, dùng Nginx làm reverse proxy, dùng Let’s Encrypt/Certbot cấp HTTPS. Mô hình này dễ deploy, dễ debug, hỗ trợ auto-renew, phù hợp từ website cá nhân đến production app.
Nếu làm đúng thứ tự — DNS → Nginx → proxy → Certbot → renew test — quá trình thường chỉ mất 10-15 phút. Quan trọng nhất: domain phải trỏ đúng VPS, port 80/443 mở, Next.js app chạy ổn trước khi xin cert. Khi SSL đã hoạt động, hãy kiểm tra mixed content, auto-renew, security headers để website vừa an toàn vừa chuyên nghiệp.