Cài SSL Let’s Encrypt miễn phí với Certbot trên Nginx

Cài SSL Let\'s Encrypt miễn phí với Certbot trên Nginx

Nếu bạn đang chạy website trên VPS hoặc Dedicated Server với Nginx và chưa có SSL, trong bài này, Cloud360 sẽ hướng dẫn toàn bộ quy trình từ đầu đến cuối gồm cài Certbot, lấy chứng chỉ, cấu hình HTTPS tự động, thiết lập gia hạn và xử lý các lỗi thường gặp. Làm theo đúng thứ tự, website của bạn sẽ có HTTPS hoạt động trong khoảng 10 phút.

Cài SSL Let\'s Encrypt miễn phí với Certbot trên Nginx

Let’s Encrypt và SSL miễn phí là gì?

Let’s Encrypt là một tổ chức chứng thực số (Certificate Authority) phi lợi nhuận, cung cấp chứng chỉ SSL/TLS miễn phí, tự động và được công nhận rộng rãi. Mỗi chứng chỉ có thời hạn 90 ngày, nhưng quá trình gia hạn có thể tự động hóa hoàn toàn, giúp website của bạn luôn được bảo mật mà không cần can thiệp thủ công.

Yêu Cầu Trước Khi Bắt Đầu

Trước khi chạy bất kỳ lệnh nào, hãy đảm bảo đủ điều kiện để tránh mất thời gian debug sau.

  • Hệ điều hành: Ubuntu 20.04 / 22.04 hoặc Debian 10/11 (bài này dùng Ubuntu 22.04)
  • Nginx đã được cài và đang chạy
  • Tên miền đã trỏ A record về đúng IP của server (DNS đã propagate)
  • Cổng 80 và 443 đang mở trên firewall
  • Quyền root hoặc user có sudo

Kiểm tra Nginx đang chạy:

sudo systemctl status nginx

Kiểm tra domain đã trỏ đúng IP chưa:

dig +short yourdomain.com

Kết quả trả về phải là IP của server bạn đang dùng. Nếu DNS chưa propagate, chờ thêm trước khi tiếp tục vì Certbot sẽ không cấp chứng chỉ nếu domain không trỏ đúng.

Bước 1: Cài Đặt Certbot

Certbot được phát triển bởi Electronic Frontier Foundation (EFF) và là công cụ chính thức để tương tác với Let’s Encrypt. Cài đặt trên Ubuntu 22.04 qua snap là cách được khuyến nghị hiện tại vì luôn nhận phiên bản mới nhất.

Cài snapd và Certbot:

sudo apt update

sudo apt install snapd -y

sudo snap install --classic certbot

Tạo symlink để dùng lệnh certbot trực tiếp:

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Kiểm tra Certbot đã cài thành công:

certbot --version

Kết quả trả về dạng certbot 2.x.x là thành công.

Bước 2: Mở Cổng Firewall

Certbot cần cổng 80 để xác minh domain và cổng 443 để HTTPS hoạt động. Nếu bạn đang dùng UFW, mở hai cổng này trước khi chạy Certbot.

sudo ufw allow 'Nginx Full'

sudo ufw status

Nginx Full bao gồm cả cổng 80 (HTTP) và 443 (HTTPS). Nếu trước đó bạn chỉ mở Nginx HTTP, xóa rule cũ đi:

sudo ufw delete allow 'Nginx HTTP'

Bước 3: Cấu Hình Server Block Nginx

Certbot cần đọc được tên miền trong cấu hình Nginx để tự động cấu hình HTTPS. Đảm bảo server block của bạn có đúng server_name.

Kiểm tra hoặc tạo file cấu hình cho domain:

sudo nano /etc/nginx/sites-available/yourdomain.com

Nội dung tối thiểu cần có:

server {

    listen 80;

    server_name yourdomain.com www.yourdomain.com;

 

    root /var/www/yourdomain.com/html;

    index index.html index.php;

 

    location / {

        try_files $uri $uri/ =404;

    }

}

Kích hoạt site và kiểm tra cấu hình:

sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/

sudo nginx -t

sudo systemctl reload nginx

Lệnh nginx -t phải trả về syntax is oktest is successful mới tiếp tục bước tiếp theo.

Bước 4: Lấy Chứng Chỉ SSL và Cấu Hình HTTPS Tự Động

Đây là bước quan trọng nhất. Certbot plugin Nginx sẽ tự lấy chứng chỉ từ Let’s Encrypt và chỉnh sửa cấu hình Nginx để bật HTTPS.

sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

Certbot sẽ hỏi một số thông tin:

Enter email address (used for urgent renewal and security notices):

→ Nhập email của bạn để nhận thông báo khi chứng chỉ sắp hết hạn

(A)gree/(C)ancel:

→ Nhập A để đồng ý điều khoản dịch vụ của Let’s Encrypt

(Y)es/(N)o:

→ Chọn Y hoặc N tùy bạn có muốn nhận email từ EFF không (không ảnh hưởng đến chứng chỉ)

Nếu thành công, Certbot tự động:

  • Lấy chứng chỉ SSL từ Let’s Encrypt
  • Chỉnh sửa file cấu hình Nginx để bật HTTPS trên cổng 443
  • Thêm redirect tự động từ HTTP sang HTTPS
  • Lưu chứng chỉ vào /etc/letsencrypt/live/yourdomain.com/

Kết quả thành công trông như sau:

Successfully received certificate.

Certificate is saved at: /etc/letsencrypt/live/yourdomain.com/fullchain.pem

Key is saved at:         /etc/letsencrypt/live/yourdomain.com/privkey.pem

This certificate expires on 2026-07-01.

Bước 5: Xác Nhận Cấu Hình Nginx Sau Khi Cài SSL

Sau khi Certbot chạy xong, file cấu hình Nginx được chỉnh sửa tự động. Nên xem lại để hiểu những gì đã thay đổi.

sudo cat /etc/nginx/sites-available/yourdomain.com

File sẽ trông tương tự như sau:

server {

    listen 80;

    server_name yourdomain.com www.yourdomain.com;

    return 301 https://$host$request_uri;

}

 

server {

    listen 443 ssl;

    server_name yourdomain.com www.yourdomain.com;

 

    root /var/www/yourdomain.com/html;

    index index.html index.php;

 

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    include /etc/letsencrypt/options-ssl-nginx.conf;

    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

 

    location / {

        try_files $uri $uri/ =404;

    }

}

Kiểm tra và reload Nginx:

sudo nginx -t && sudo systemctl reload nginx

Bước 6: Kiểm Tra SSL Đã Hoạt Động

Sau khi cài xong, kiểm tra SSL đang hoạt động đúng trước khi kết thúc.

Kiểm tra trên trình duyệt: Truy cập https://yourdomain.com, biểu tượng ổ khóa xuất hiện trên thanh địa chỉ là thành công. Thử truy cập http://yourdomain.com để kiểm tra redirect về HTTPS có hoạt động không.

Kiểm tra bằng curl:

curl -I http://yourdomain.com

Kết quả phải trả về 301 Moved Permanently với header Location: https://yourdomain.com.

Kiểm tra điểm bảo mật với SSL Labs: Vào https://www.ssllabs.com/ssltest/, nhập tên miền và chạy test. Cấu hình Let’s Encrypt với Certbot trên Nginx thường đạt điểm A hoặc A+ ngay từ đầu nhờ file options-ssl-nginx.conf của Certbot đã cấu hình TLS 1.2/1.3 và cipher suite an toàn.

Bước 7: Cấu Hình Tự Động Gia Hạn SSL

Chứng chỉ Let’s Encrypt có hiệu lực 90 ngày. Certbot tự động cài một systemd timer để gia hạn trước khi hết hạn, không cần bạn làm gì.

Kiểm tra timer đã được cài chưa:

sudo systemctl status snap.certbot.renew.timer

Kiểm tra thử quy trình gia hạn có hoạt động không:

sudo certbot renew --dry-run

Lệnh --dry-run giả lập quá trình gia hạn mà không thực sự lấy chứng chỉ mới. Kết quả trả về Congratulations, all simulated renewals succeeded là hoàn tất.

Certbot sẽ tự gia hạn khi chứng chỉ còn dưới 30 ngày, chạy hai lần mỗi ngày vào giờ ngẫu nhiên để phân tán tải cho server Let’s Encrypt.

Xử lý lỗi thường gặp

Dưới đây là các lỗi phổ biến nhất khi cài SSL với Certbot và cách xử lý nhanh.

Xử lý lỗi thường gặp

Lỗi: Could not bind to IPv4/IPv6

Certbot cần dùng cổng 80 để xác minh domain nhưng Nginx đang chiếm cổng này. Giải pháp là dùng plugin Nginx thay vì standalone:

sudo certbot --nginx -d yourdomain.com

Plugin Nginx không cần tắt Nginx, xử lý trực tiếp qua cấu hình.

Lỗi: DNS problem: NXDOMAIN looking up A for yourdomain.com

Domain chưa trỏ về IP của server hoặc DNS chưa propagate. Kiểm tra lại A record và chờ thêm 15-30 phút rồi chạy lại.

Lỗi: too many certificates already issued for yourdomain.com

Let’s Encrypt giới hạn 5 chứng chỉ cho cùng một domain trong 7 ngày. Nếu bạn đã chạy lệnh certbot nhiều lần do lỗi, dùng flag –staging để test trước:

sudo certbot --nginx --staging -d yourdomain.com

Lỗi Mixed Content sau khi cài SSL

Website đã có HTTPS nhưng một số tài nguyên (ảnh, CSS, JS) vẫn load qua HTTP. Nếu dùng WordPress, cài plugin Really Simple SSL để tự động fix, hoặc thêm vào cấu hình Nginx:

add_header Content-Security-Policy "upgrade-insecure-requests";

Chứng chỉ không tự gia hạn được

Kiểm tra log gia hạn:

sudo journalctl -u snap.certbot.renew.service

Nguyên nhân thường gặp là cổng 80 bị chặn bởi firewall vào thời điểm gia hạn, hoặc cấu hình Nginx có lỗi. Sửa lỗi và chạy certbot renew --dry-run lại để xác nhận.

Tối ưu thêm sau khi cài ssl

Sau khi SSL hoạt động, có thể thêm một số cấu hình để tăng điểm bảo mật.

Bật HSTS (HTTP Strict Transport Security)

HSTS yêu cầu trình duyệt luôn dùng HTTPS khi truy cập domain, ngăn tấn công SSL stripping. Thêm vào server block HTTPS trong Nginx:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Bật OCSP Stapling

Giúp trình duyệt xác minh tính hợp lệ của chứng chỉ nhanh hơn mà không cần kết nối đến CA:

ssl_stapling on;

ssl_stapling_verify on;

resolver 8.8.8.8 8.8.4.4 valid=300s;

resolver_timeout 5s;

Sau khi thêm, reload Nginx và kiểm tra lại điểm trên SSL Labs để xác nhận đã đạt A+.

Vậy là trên đây Cloud360 đã hướng xong cách cài SSL Let’s Encrypt miễn phí với Certbot trên Nginx. Chúc bạn thành công!

Nguyen Ngoc Thu

CEO tại Cloud360
Theo dõi:
Nguyễn Ngọc Thư là Giám đốc Công ty 360, đơn vị chủ quản thương hiệu HostingViet. Dưới sự điều hành của ông, HostingViet phát triển mạnh mẽ, cung cấp các giải pháp Cloud VPS, Hosting chất lượng và tên miền.

Bài viết liên quan

CyberPanel Là Gì? Hướng Dẫn Cài Đặt Và Tối Ưu Tốc Độ Máy Chủ

CyberPanel Là Gì? Hướng Dẫn Cài Đặt Và Tối Ưu Tốc Độ Máy Chủ

Nhu cầu tối ưu hóa tốc độ tải trang và nâng cao hiệu suất máy chủ đang trở thành yếu tố sống còn cho mọi website doanh nghiệp lẫn cá nhân. Trong bối cảnh các giải pháp lưu trữ truyền thống dần bộc lộ nhiều hạn chế về chi phí và tài nguyên, giải pháp CyberPanel nổi [...]

Ngô TúTháng 7 23, 2026
Đào Bitcoin Bằng VPS: Hướng Dẫn Tối Ưu Tốc Độ Và Hiệu Quả

Đào Bitcoin Bằng VPS: Hướng Dẫn Tối Ưu Tốc Độ Và Hiệu Quả

Sự phát triển mạnh mẽ của thị trường tiền điện tử đã thúc đẩy nhu cầu tìm kiếm các giải pháp khai thác tài sản số linh hoạt, trong đó mô hình đào Bitcoin bằng VPS đang nhận được sự quan tâm rất lớn từ cộng đồng công nghệ. Mặc dù thuật toán đào crypto ngày càng [...]

Nguyễn Ngọc ThưTháng 7 23, 2026
DirectAdmin Là Gì? Hướng Dẫn Cài Đặt Và Sử Dụng Từ A-Z

DirectAdmin Là Gì? Hướng Dẫn Cài Đặt Và Sử Dụng Từ A-Z

DirectAdmin (DA) là bảng điều khiển web hosting (control panel) chạy trên Linux, giúp quản lý server qua giao diện đồ họa trực quan mà không cần lệnh dòng lệnh

Nguyễn Ngọc ThưTháng 7 23, 2026
VPS Managed là gì? Ưu nhược điểm, chi phí và cách sử dụng đúng

VPS Managed là gì? Ưu nhược điểm, chi phí và cách sử dụng đúng

VPS Managed là dịch vụ máy chủ ảo riêng được nhà cung cấp hỗ trợ quản trị kỹ thuật ở nhiều cấp độ, bao gồm cài đặt môi trường máy chủ, tối ưu hiệu năng, cấu hình bảo mật, theo dõi tài nguyên, xử lý lỗi cơ bản và hỗ trợ vận hành định kỳ. [...]

Nguyễn Ngọc ThưTháng 7 20, 2026
Phân biệt VPS và Hosting: Ưu nhược điểm từng loại? Nên chọn loại nào?

Phân biệt VPS và Hosting: Ưu nhược điểm từng loại? Nên chọn loại nào?

Khi bắt đầu xây dựng website, rất nhiều cá nhân và doanh nghiệp băn khoăn giữa hai lựa chọn phổ biến: hosting và VPS. Cả hai đều là dịch vụ lưu trữ giúp website hoạt động trên internet, nhưng cách vận hành, mức tài nguyên, quyền kiểm soát, hiệu năng và chi phí lại khác [...]

Nguyễn Ngọc ThưTháng 7 20, 2026
VPS Google là gì? Hướng dẫn cách đăng ký và sử dụng VPS Google Cloud

VPS Google là gì? Hướng dẫn cách đăng ký và sử dụng VPS Google Cloud

VPS Google thường được hiểu là máy chủ ảo được khởi tạo trên nền tảng Google Cloud Platform, cụ thể là dịch vụ Compute Engine. Giải pháp này cho phép cá nhân và doanh nghiệp thuê tài nguyên điện toán theo nhu cầu, lựa chọn số lượng vCPU, RAM, ổ đĩa, hệ điều hành, vị [...]

Nguyễn Ngọc ThưTháng 7 20, 2026
CloudPanel Là Gì? Hướng Dẫn Cài Đặt Và Sử Dụng Tối Ưu

CloudPanel Là Gì? Hướng Dẫn Cài Đặt Và Sử Dụng Tối Ưu

Trong bối cảnh công nghệ số phát triển vượt bậc, việc tìm kiếm một công cụ quản lý máy chủ ảo vừa mạnh mẽ, vừa tiết kiệm chi phí là ưu tiên hàng đầu của mọi doanh nghiệp. Đối với các nhà quản trị hệ thống và lập trình viên, câu hỏi CloudPanel là gì đã [...]

Nguyễn Ngọc ThưTháng 7 15, 2026
aaPanel Là Gì? Hướng Dẫn Cài Đặt Và Sử Dụng Chi Tiết Từ A-Z

aaPanel Là Gì? Hướng Dẫn Cài Đặt Và Sử Dụng Chi Tiết Từ A-Z

Trong kỷ nguyên số hóa hiện nay, việc sở hữu và vận hành một hệ thống website ổn định đòi hỏi doanh nghiệp phải tối ưu hóa hạ tầng máy chủ một cách bài bản. Đối với những nhà quản trị mạng, lập trình viên hay thậm chí là những người mới bắt đầu bước [...]

Nguyễn Ngọc ThưTháng 7 15, 2026
So sánh VPS và Cloud Server: Ưu nhược điểm? Nên chọn loại nào?

So sánh VPS và Cloud Server: Ưu nhược điểm? Nên chọn loại nào?

Trong quá trình xây dựng website, triển khai ứng dụng hoặc vận hành hệ thống nội bộ, một trong những câu hỏi phổ biến nhất là nên thuê VPS hay Cloud Server. Đây không chỉ là lựa chọn về giá, mà còn ảnh hưởng trực tiếp đến tốc độ tải trang, khả năng mở rộng, [...]

Nguyễn Ngọc ThưTháng 7 13, 2026
Cloud VPS Siêu Tốc Giá Chỉ 80K – Cấu Hình Mạnh Mẽ Nhất

Cloud VPS Siêu Tốc Giá Chỉ 80K – Cấu Hình Mạnh Mẽ Nhất

Cloud VPS đang trở thành lựa chọn hạ tầng phổ biến cho website doanh nghiệp, sàn thương mại điện tử, hệ thống nội bộ, ứng dụng SaaS, landing page quảng cáo và các dự án cần tài nguyên ổn định hơn shared hosting. Thay vì dùng chung toàn bộ tài nguyên với nhiều website khác, [...]

Nguyễn Ngọc ThưTháng 7 13, 2026