Project

General

Profile

Đăng ký SSL

User documentation
08/12/2025

Chúng ta sẽ sử dụng Let's Encrypt và công cụ Certbot, đây là phương pháp phổ biến và được khuyến nghị nhất cho các máy chủ Linux.

Quá trình này bao gồm các bước sau:

Cài đặt Certbot: Công cụ tự động hóa việc lấy và gia hạn chứng chỉ SSL.

Chạy Certbot để lấy chứng chỉ: Lệnh Certbot sẽ kết nối đến Nginx và Let's Encrypt để xác minh domain và tạo chứng chỉ.

Cấu hình lại Nginx: Điều chỉnh cấu hình Nginx để sử dụng chứng chỉ SSL mới và chuyển hướng từ HTTP sang HTTPS.

Tự động gia hạn: Cấu hình tự động gia hạn chứng chỉ, vì chứng chỉ Let's Encrypt chỉ có thời hạn 90 ngày.

Bước 1: Cài đặt Certbot trên máy chủ Linux
Đầu tiên, bạn cần kết nối SSH vào máy chủ Linux của mình.

Cài đặt Certbot và plugin Nginx:
Sử dụng trình quản lý gói của hệ điều hành. Đối với Ubuntu/Debian, bạn có thể dùng apt.

Bash

sudo apt update
sudo apt install certbot python3-certbot-nginx

certbot: Công cụ chính để lấy chứng chỉ.

python3-certbot-nginx: Plugin này cho phép Certbot tự động cấu hình Nginx để sử dụng chứng chỉ.

Bước 2: Chạy Certbot để lấy và cài đặt chứng chỉ SSL
Bây giờ bạn sẽ chạy Certbot. Nó sẽ tự động xác minh quyền sở hữu domain của bạn và cấu hình Nginx.

Chạy lệnh Certbot:

Bash

sudo certbot --nginx -d api.pickonow.com

--nginx: Chỉ định rằng bạn muốn dùng plugin Nginx để xác minh domain và cấu hình Nginx.

-d api.pickonow.com: Tên miền mà bạn muốn lấy chứng chỉ. Bạn có thể thêm nhiều tên miền bằng cách lặp lại cờ -d.

Làm theo hướng dẫn của Certbot:

Certbot sẽ yêu cầu bạn nhập địa chỉ email. Địa chỉ này sẽ được dùng để thông báo khi chứng chỉ sắp hết hạn.

Certbot sẽ hỏi bạn có đồng ý với các điều khoản dịch vụ (Terms of Service) của Let's Encrypt không.

Nó sẽ kiểm tra file cấu hình Nginx của bạn và hỏi bạn có muốn chuyển hướng tất cả traffic HTTP sang HTTPS không. Bạn nên chọn chuyển hướng (redirect) để đảm bảo tất cả các kết nối đều an toàn.

Sau khi quá trình hoàn tất, Certbot sẽ tự động sửa đổi file cấu hình Nginx của bạn để sử dụng chứng chỉ SSL mới và lắng nghe trên cổng 443 (HTTPS).

Bước 3: Xác minh cấu hình Nginx đã được cập nhật
Certbot sẽ tự động tạo một khối server mới cho HTTPS hoặc chỉnh sửa khối hiện có. Bạn có thể kiểm tra lại để đảm bảo mọi thứ đã đúng.

Mở file cấu hình Nginx cho api.pickonow.com:

Bash

sudo nano /etc/nginx/sites-available/api.pickonow.conf

Kiểm tra các thay đổi:
Bạn sẽ thấy Certbot đã thêm các dòng sau vào file cấu hình:

Một khối server mới lắng nghe trên cổng 443 ssl.

Các dòng ssl_certificate và ssl_certificate_key trỏ đến các file chứng chỉ mới được tạo trong /etc/letsencrypt/live/api.pickonow.com/.

Một khối server cũ lắng nghe trên cổng 80 sẽ được thêm một lệnh return 301 https://$host$request_uri; để chuyển hướng traffic HTTP sang HTTPS.

Kiểm tra cú pháp và reload Nginx:
Nếu bạn đã chỉnh sửa file, hãy kiểm tra lại và tải lại Nginx.

Bash

sudo nginx -t
sudo systemctl reload nginx

Bước 4: Kiểm tra tự động gia hạn chứng chỉ
Chứng chỉ Let's Encrypt chỉ có thời hạn 90 ngày. Certbot đã tự động tạo một cron job hoặc một service systemd để gia hạn chứng chỉ trước khi hết hạn.

Chạy thử lệnh gia hạn:
Bạn có thể chạy thử lệnh gia hạn để kiểm tra xem nó có hoạt động không (nó sẽ không gia hạn thật nếu chứng chỉ còn thời hạn).

Bash

sudo certbot renew --dry-run

Nếu không có lỗi nào, bạn có thể yên tâm rằng chứng chỉ sẽ được tự động gia hạn.

Bây giờ, khi bạn truy cập https://api.pickonow.com, kết nối sẽ an toàn và được bảo vệ bởi chứng chỉ SSL miễn phí từ Let's Encrypt.

Files