SSL miễn phí với Certbot

2020/10/14 07:35:02

Giới thiệu

Certbot là một trong những nỗ lực khiến cho duyệt web trở nên an toàn hơn. Nó là một client dễ sử dụng - lấy chứng chỉ từ Let's Encrypt và deploy lên web server.

Ắt hẳn ai cũng từng trải qua những khó khăn, rắc rối khi cài đặt và bảo trì các chứng chỉ số. Với Certbot và Let's Encrypt, mọi thứ trở nên dễ dàng hơn bằng những câu lệnh đến biến trang web của bạn thành HTTPS.

Cài đặt

Cài nhanh

Bước 1. Cài đặt Snapd

Hướng dẫn cài đặt Snapd

Bước 2. Cài đặt Certbot

$ sudo snap install --classic certbot

Bước 3. Chạy Certbot với Nginx

Tự động cấu hình chứng chỉ và nginx

$ sudo certbot --nginx

Hoặc chỉ lấy chứng chỉ bảo mật

$ sudo certbot certonly --nginx

Bước 4. Kiểm tra

$ sudo certbot renew --dry-run

Dựng từ mã nguồn

Hướng dẫn dưới đây cài đặt Certbot trên CentOS và config bằng web server Nginx.

Bước 1. Cài đặt git và clone repo Let's Encrypt

$ yum -y install git
$ git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

Bước 2. Chạy Certbot (đổi example.com thành tên miền của bạn)

$ cd /opt/letsencrypt
$ ./certbot-auto certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d example.com -d *.example.com

Rồi tiến hành cài đặt theo hướng dẫn của chương trình.

Cuối cùng ta được

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2020-04-09. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Vậy là ta có đường dẫn tới file key (thay example.com bằng tên miền của bạn)

/etc/letsencrypt/live/example.com/fullchain.pem
/etc/letsencrypt/live/example.com/privkey.pem

Bước 3. Cấu hình Nginx

Mở file config nginx website của bạn. Ví dụ:

server {
  listen     80;
  server_name  example.com;

  location / {
    try_files $uri;
  }
}

Ta sửa thành:

server {
  listen 80;
  server_name example.com;
  return 301 https://$host$request_uri;
}

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;

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
  ssl_prefer_server_ciphers on; 
  ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

  location / {
    try_files $uri;
  }
}

Xong ta khởi động lại Nginx

$ systemctl restart nginx

Quay lại trang chủ