Hướng dẫn - Cài đặt chứng chỉ HTTPS miễn phí của Let's Encrypt cho website của bạn | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

If possible, please support us by clicking on the advertisements.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software.

×

Hướng dẫn Cài đặt chứng chỉ HTTPS miễn phí của Let's Encrypt cho website của bạn

Huỳnh Phúc Huy

Búa Đá Đôi
Cài đặt chứng chỉ SSL cho server Ubuntu

http_to_https-1.jpg

Trước đây mình sử dụng CloudFlare để lấy chứng chỉ HTTPS cho miền của mình, việc setup rất đơn giản tuy nhiên một số nhược điểm khi dùng CloudFlare mà mình thấy như hay bị downtime, bị ảnh hưởng vì IP chung, và sau khi setup thì cần đến 24h để chứng chỉ HTTPS có hiệu lực. Vì thế mình quyết định tự tay cài đặt Let's Encrypt cho VPS của mình (cái này là chứng chỉ miễn phí).

Các bước cần chuẩn bị trước khi cài đặt :
  • Tên miền có sẵn và đã trỏ về vps
  • Thêm A record cho www
  • Cài đặt python 2.7 trở lên (thường thì hệ điều hành Ubuntu 14.04 đã có python version này)
  • Cài đặt nginx

Bước 1 - Cài đặt Certbot

24809686417_1d5c276608_o.png

Certbot là trình tự động đăng ký và cài đặt ký chứng chỉ Let's Encrypt

Thêm repository
Mã:
sudo add-apt-repository ppa:certbot/certbot

Cập nhật package list
Mã:
sudo apt-get update

Cài đặt Certbot nginx
Mã:
sudo apt-get install python-certbot-nginx

Vậy là bạn đã cài đặt xong Certbot, bước tiếp theo ;là cấu hình nginx và khởi động Certbot

Bước 2 - Cấu hình Nginx

Certbot sẽ tự động cài đặt và cấu hình SSL cho nginx, tuy nhiên bạn cần cấu hình server block (server_name) trong config trước để Certbot có thể đọc và tự động thiết lập.

Mở tập tin cấu hình Nginx
Mã:
sudo nano /etc/nginx/sites-available/default

Tìm dòng server_name và thay thế _ bằng miền của bạn
Mã:
. . .
server_name example.com www.example.com;
. . .

Kiểm tra xem cấu hình có hợp lệ không
Mã:
sudo nginx -t

Khi đã cấu hình xong thì bạn restart Nginx
Mã:
sudo service nginx restart

Bước tiếp theo là cập nhật Firewall.

Bước 3 - Cho phép HTTPS thông qua Firewall

Nếu bạn có ufw firewall, bãn sẽ cần cấu hình để cho phép truy cập https.

Xem cấu hình hiện tại
Mã:
sudo ufw status

Bạn sẽ thấy cấu hình hiện tại
Mã:
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere               
Nginx HTTP                 ALLOW       Anywhere               
OpenSSH (v6)               ALLOW       Anywhere (v6)           
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Bạn cần cho phép cấu hình Nginx đầy đủ và xóa cấu hình Nginx HTTP
Mã:
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'

Kiểm tra lại cấu hình firewall
Mã:
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx Full                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx Full (v6)            ALLOW       Anywhere (v6)

Bước 4 - Lấy chứng chỉ SSL

Certbot cung cấp rất nhiều cách để lấy chứng chỉ SSL sử dụng nhiều plgugin khác nhau và hỗ trợ nhiều server khác nhau.
Mã:
sudo certbot --nginx -d example.com -d www.example.com

Nếu là lần đầu đăng ký thì bạn sẽ cần nhập địa chỉ email và đồng ý với chính sách của Let's Encrypt

Sau khi đăng ký thành công thì Certbot sẽ hỏi các bạn về cách thiết lập cấu hình HTTPS
Mã:
Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

1: Không thay đổi cấu hình webserver
2: Chuyển hướng - Chuyển hướng tất cả các kết nối HTTP sang HTTPS

Mình khuyên là sử dụng lựa chọn 1 sau đó cấu hình chuyển hướng bằng tay bởi 1 số bạn có sử dụng reverse proxy.

Sử dụng cấu hình sau để chuyển hướng
Mã:
server {
    listen 80;
    server_name www.example.com example.com;
    return 301 https://$host$request_uri;
}

Sau đó nhấn Enter.

Sau khi lấy được thành công chứng chỉ và cài đặt cho server nginx sẽ hiện ra thông báo sau

Mã:
Output
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
   expire on 2017-10-23. To obtain a new or tweaked version of this
   certificate in the future, simply run certbot again with the
   "certonly" option. To non-interactively renew *all* of your
   certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - 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

Chứng chỉ SSL sẽ có thời hạn trong 90 ngày, Certbot sẽ tự động renew chứng chỉ của bạn khi hết hạn.

Bước 5 - Kiểm tra Certbot Auto-Renewal

Để test quá trình renew Certbot có hoạt động hay không, bạn gõ lệnh sau
Mã:
sudo certbot renew --dry-run

Nếu không thấy lỗi nào thì có nghĩa là quá trình tự động renew Certbot đã được thiết lập thành công. Nếu quá trình tự động renew gặp lỗi thì bạn sẽ nhận được email cảnh báo sắp hết hạn từ Let's Encrypt.

Nếu các bạn có câu hỏi gì hay gặp trục trặc trong quá trình cài đặt thì có thể đặt câu hỏi bên dưới, mình sẽ hỗ trợ sớm nhất có thể {byebye}
 
Sửa lần cuối:

IT Lover

Rìu Sắt Đôi
Former Moderator
Hồi năm ngoái lúc em mới xây dựng web lần đầu tiên, tìm được cái certbot này ngon thật. Cảm ơn bác đã chia sẻ :D !
 


Top