Cài Đặt SSL Miễn Phí 100%

Dưới đây là hướng dẫn chi tiết để cài đặt và sử dụng Certbot trên hệ điều hành Linux nhằm tạo và quản lý chứng chỉ SSL/TLS miễn phí từ Let's Encrypt. Các bước này áp dụng cho các bản phân phối Linux phổ biến như Ubuntu, Debian, CentOS, hoặc Fedora. Tôi sẽ trình bày một cách ngắn gọn và dễ hiểu.


1. Kiểm tra yêu cầu

  • Máy chủ Linux đã cài đặt web server (Apache hoặc Nginx).
  • Quyền root hoặc sudo để thực thi lệnh.
  • Tên miền đã trỏ về địa chỉ IP của máy chủ (DNS đã cấu hình A record).

2. Cài đặt Certbot

Tùy thuộc vào bản phân phối Linux, sử dụng lệnh phù hợp:

Trên Ubuntu/Debian

  1. Cập nhật hệ thống:
    sudo apt update && sudo apt upgrade -y

     

  2. Cài đặt Certbot và plugin cho web server:
    • Với Apache:
      sudo apt install certbot python3-certbot-apache

       

    • Với Nginx:
      sudo apt install certbot python3-certbot-nginx

       

Trên CentOS/RHEL

  1. Cài đặt EPEL repository (nếu chưa có):
    sudo yum install epel-release

     

  2. Cài đặt Certbot:
    • Với Apache:
      sudo yum install certbot python3-certbot-apache

       

    • Với Nginx:
      sudo yum install certbot python3-certbot-nginx

       

Trên Fedora

  1. Cài đặt Certbot:
    sudo dnf install certbot python3-certbot-apache
    Hoặc với Nginx:

     

    sudo dnf install certbot python3-certbot-nginx

     


3. Tạo chứng chỉ SSL

Sau khi cài đặt, sử dụng Certbot để tự động tạo và cấu hình chứng chỉ SSL.

Với Apache

Chạy lệnh sau để Certbot tự động cấu hình SSL:

sudo certbot --apache
  • Certbot sẽ hỏi bạn:
    • Nhập email để nhận thông báo gia hạn.
    • Chọn tên miền cần tạo chứng chỉ.
    • Có muốn tự động chuyển hướng HTTP sang HTTPS hay không.

Với Nginx

Chạy lệnh:

sudo certbot --nginx
  • Quy trình tương tự như với Apache, Certbot sẽ tự động chỉnh sửa cấu hình Nginx để sử dụng SSL.

Cài đặt thủ công (nếu không dùng plugin)

Nếu bạn muốn tự quản lý cấu hình:

  1. Tạo chứng chỉ:
    sudo certbot certonly --webroot -w /var/www/html -d example.com -d www.example.com
    • Thay /var/www/html bằng thư mục gốc của website.
    • Thay example.com bằng tên miền của bạn.
  2. Chứng chỉ sẽ được lưu tại: /etc/letsencrypt/live/example.com/.

4. Kiểm tra và gia hạn chứng chỉ

  • Kiểm tra chứng chỉ:
    sudo certbot certificates

     

  • Gia hạn chứng chỉ (chứng chỉ Let's Encrypt hết hạn sau 90 ngày):
    sudo certbot renew

     

  • Tự động gia hạn: Certbot thường tự động thêm một cron job hoặc systemd timer để gia hạn. Kiểm tra bằng:
    sudo crontab -l
    Hoặc:
    sudo systemctl list-timers | grep certbot
    Nếu chưa có, thêm cron job:
    echo "0 0,12 * * * root certbot renew --quiet" | sudo tee -a /etc/crontab > /dev/null

     


5. Cấu hình web server (nếu cần)

  • Apache: Certbot thường tự động thêm cấu hình SSL. Nếu không, thêm vào file VirtualHost:

    apache

     

    <VirtualHost *:443>
        ServerName example.com
        DocumentRoot /var/www/html
        SSLEngine on
        SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    </VirtualHost>

     

  • Nginx: Thêm vào file cấu hình:

    nginx

    server {
        listen 443 ssl;
        server_name example.com;
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
        root /var/www/html;
    }

     


6. Kiểm tra kết quả

  • Khởi động lại web server:
    sudo systemctl restart apache2 # hoặc nginx

     

  • Truy cập https://example.com để kiểm tra.
  • Sử dụng công cụ như SSL Labs (https://www.ssllabs.com/ssltest/) để kiểm tra chứng chỉ.

Lưu ý

  • Mở port 80 và 443 trên firewall:
    sudo ufw allow 80 sudo ufw allow 443

     

  • Nếu gặp lỗi, kiểm tra log tại /var/log/letsencrypt/.
  • Đảm bảo DNS đã trỏ chính xác trước khi chạy Certbot.