Hướng Dẫn Thiết Lập SSL cho Nginx trên Ubuntu


SSL (Secure Socket Layer) là một giao thức bảo mật giữa máy khách và máy chủ, giúp mã hóa dữ liệu được truyền tải giữa chúng. Đối với Nginx, bạn có thể sử dụng chứng chỉ SSL để kích hoạt kết nối an toàn. Dưới đây là hướng dẫn chi tiết để thiết lập SSL cho Nginx trên Ubuntu.

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

Certbot là một công cụ tự động hóa quá trình lấy chứng chỉ SSL từ Let’s Encrypt, một dự án cung cấp chứng chỉ SSL miễn phí. Sử dụng các lệnh sau để cài đặt Certbot:

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

Bước 2: Thiết Lập Chứng Chỉ SSL với Certbot

Sử dụng Certbot để lấy và cài đặt chứng chỉ SSL cho tên miền của bạn. Thay thế <your_domain> bằng tên miền thực tế của bạn:

sudo certbot --nginx -d <your_domain>

Certbot sẽ yêu cầu bạn nhập một địa chỉ email để nhận thông báo và đồng ý với các điều khoản của Let’s Encrypt. Sau đó, bạn sẽ được hỏi liệu bạn muốn chuyển hướng tất cả traffic về HTTPS hay không. Chọn tùy chọn mà bạn muốn sử dụng.

Sau khi hoàn tất, Certbot sẽ cấu hình Nginx để sử dụng chứng chỉ SSL mới và tự động cài đặt các cài đặt cần thiết.

Bước 3: Kiểm Tra Tự Động Gia Hạn Chứng Chỉ

Chứng chỉ SSL từ Let’s Encrypt có thời hạn, nhưng Certbot sẽ tự động gia hạn chúng trước khi hết hạn. Bạn có thể thử nghiệm quá trình gia hạn bằng cách chạy:

sudo certbot renew --dry-run

Nếu bạn nhận được một thông báo xác nhận rằng việc gia hạn đã thành công, đồng nghĩa với việc Certbot đã được cấu hình đúng.

Bước 4: Cấu Hình Redirect HTTP sang HTTPS (Tuỳ Chọn)

Để đảm bảo mọi người truy cập trang web của bạn luôn sử dụng kết nối an toàn, bạn có thể cấu hình Nginx để tự động chuyển hướng từ HTTP sang HTTPS. Mở file cấu hình của Nginx:

sudo nano /etc/nginx/sites-available/default

Thêm đoạn mã sau vào khối server:

server {
    listen 80;
    server_name <your_domain>;

    return 301 https://$host$request_uri;
}

Lưu và đóng file, sau đó kiểm tra cấu hình và khởi động lại Nginx:

sudo nginx -t
sudo systemctl restart nginx

Với các bước trên, bạn đã hoàn tất quá trình thiết lập SSL cho Nginx trên Ubuntu. Trang web của bạn sẽ hiện đang sử dụng kết nối an toàn, giúp bảo vệ thông tin truyền tải giữa máy khách và máy chủ.