Giới thiệu

SSL (Secure Socket Layer) là giao thức mã hoá giúp bảo mật dữ liệu truyền giữa trình duyệt và máy chủ. Việc triển khai chứng chỉ SSL miễn phí như Let’s Encrypt không chỉ nâng cao độ tin cậy mà còn cải thiện SEO. Bài viết sẽ hướng dẫn chi tiết cách cài đặt và cấu hình SSL trên hai web server phổ biến: NginxApache.

Chuẩn bị môi trường

  • Máy chủ Linux (Ubuntu 22.04 hoặc tương đương)
  • Quyền root hoặc sudo
  • Tên miền đã trỏ DNS về IP máy chủ
  • Web server đã cài đặt và chạy (Nginx hoặc Apache)

Cài đặt Certbot

Certbot là công cụ chính thức của Let’s Encrypt để tự động lấy và gia hạn chứng chỉ.

sudo apt update
sudo apt install -y certbot

Tiếp theo, cài đặt plugin cho web server tương ứng.

# Đối với Nginx
sudo apt install -y python3-certbot-nginx

# Đối với Apache
sudo apt install -y python3-certbot-apache

Triển khai SSL trên Nginx

Bước 1: Lấy chứng chỉ

Sử dụng lệnh sau, Certbot sẽ tự động cấu hình Nginx và tạo file chứng chỉ.

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

Trong quá trình chạy, bạn sẽ được hỏi chọn chuyển hướng HTTP sang HTTPS hay không; nên chọn Yes để đảm bảo mọi yêu cầu đều được bảo mật.

Bước 2: Kiểm tra cấu hình

Mở file cấu hình Nginx để xác nhận các chỉ thị SSL đã được thêm.

sudo cat /etc/nginx/sites-enabled/example.com

Bạn sẽ thấy các dòng tương tự:

listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

Bước 3: Kiểm tra lại Nginx

sudo nginx -t
sudo systemctl reload nginx

Nếu không có lỗi, truy cập https://example.com để xác nhận chứng chỉ hoạt động.

Triển khai SSL trên Apache

Bước 1: Lấy chứng chỉ

sudo certbot --apache -d example.com -d www.example.com

Certbot sẽ tự động chỉnh sửa file .conf của Apache, bật SSLEngine on và chèn đường dẫn chứng chỉ.

Bước 2: Kiểm tra cấu hình

sudo apachectl configtest

Nếu thông báo Syntax OK xuất hiện, tiến hành khởi động lại Apache.

sudo systemctl reload apache2

Bước 3: Kiểm tra HTTPS

Mở trình duyệt và truy cập https://example.com. Nếu thanh địa chỉ hiển thị ổ khóa xanh, chứng chỉ đã được cài đặt thành công.

Gia hạn chứng chỉ tự động

Let’s Encrypt chứng chỉ có thời hạn 90 ngày. Certbot cung cấp cron job hoặc systemd timer để tự động gia hạn.

sudo systemctl list-timers | grep certbot

Hoặc kiểm tra thủ công:

sudo certbot renew --dry-run

Kết luận

Việc cấu hình SSL trên Nginx và Apache không quá phức tạp nếu bạn nắm rõ quy trình cài đặt Certbot và kiểm tra cấu hình. Khi đã có HTTPS, website của bạn sẽ an toàn hơn, cải thiện thứ hạng SEO và tạo niềm tin cho người dùng.

Để nắm vững toàn bộ quy trình Deploy Web, Tham khảo khóa học "Deploy Web - Triển khai website lên môi trường Internet" tại đây.