Cài đặt SSL Let’s Encrypt https free ssl miễn phí với Certbot trên Nginx

Ở bài viết này AZDIGI sẽ hướng dẫn bạn cách cài đặt chứng chỉ SSL Let’s Encrypt lên máy chủ Nginx một cách đơn giản và nhanh chóng nhất. Các bạn cùng xem qua bài viết nhé.

I. Tổng quan

SSL là gì?

SSL là một loại chứng chỉ giúp mã hóa các thông tin trên những thiết bị hoặc các ứng dụng có hỗ trợ mã hóa này bằng chứng chỉ SSL. Chứng chỉ SSL sẽ có hai phần gồm những phần Private Key và Public Key, trong đó Public Key nó sẽ được cài ở các ứng dụng đầu cuối mà trình duyệt hay các ứng dụng khác cũng có thể truy cập đọc được, còn Private Key nó sẽ được cài đặt ở các ứng dụng xử lý tiếp nhận dữ liệu.

Mục đích hoạt động của nó giống như chìa khóa để giúp giải mã những dữ liệu gửi đi từ thiết bị đầu cuối cũng đã được mã hóa thông qua Public Key.

Let’s Encrypt là gì?

Let’s Encrypt là một tổ chức xác thực SSL giống như Comodo, GeoTrust, Symantec nhưng cái điểm khác đó là họ là tổ chức phi lợi nhuận được thành lập với sự bảo trợ của các tổ chức lớn trên thế giới Cisco, Akamai, Mozilla, Facebook…Do đó, những chứng chỉ SSL Let’s Encrypt sẽ không khác gì với những loại chứng chỉ SSL khác mà chỉ khác nhau ở chỗ bạn phải gia hạn mỗi 90 ngày một lần nếu muốn tiếp tục sử dụng.

Ngoài ra các bạn có thể tham khảo thêm về Let’s Encrypt tại link trang chủ bên dưới.

Vậy để cài đặt SSL Let’s Encrypt lên máy chủ Nginx thì làm sao, mời các bạn xem tiếp các bước thực hiện bên dưới.

II. Các bước thực hiện

Để cài đặt SSL Let’s Encrypt trên máy chủ Nginx các bạn có thể thực hiện với 3 bước sau.

 

Bước 1: Cài đặt Cerbot Let’s Encrypt Client

Với Let’s Encrypt các bạn có thể cài đặt nhanh nó thông qua Certbot client  chỉ với vài dòng lệnh đơn giản, việc còn lại của bạn chỉ là ngồi chờ hệ thống chạy tự động.

  • Đầu tiên bạn cần cài đặt EPEL repository:
  • yum -y install epel-release 
  • Bây giờ thì cài đặt certbot-nginx bằng câu lệnh sau:
  • yum -y install certbot-nginx 
    Cài đặt SSL Let's Encrypt với Certbot trên Nginx
    Như hình là đã cài đặt thành công Certbot

    Bước 2: Cài đặt SSL Let’s Encrypt

    Lưu ý: Bạn phải đảm bảo domain đã được trỏ về IP máy chủ ( Nếu cài đặt SSL cho cả www.domain.com thì sub www cũng phải trỏ về máy chủ nhé)

    Để cài đặt SSL cho website , các bạn sử dụng câu lệnh sau. (Bạn nhớ thay azdigi.cf thành tên website của bạn)

  • certbot --nginx -d azdigi.cf -d www.azdigi.cf
    
    
    
    [root@template conf.d]# certbot --nginx -d azdigi.cf -d www.azdigi.cf Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] (Nhập email của bạn) Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server. Do you agree? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y  (Nhấn Y để đồng ý điều khoản) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing, once your first certificate is successfully issued, to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: N (Nhấn N để từ chối các thông tin, tin tức từ letsencrypt và Certbot ) Account registered. Requesting a certificate for azdigi.cf and www.azdigi.cf Performing the following challenges: http-01 challenge for azdigi.cf http-01 challenge for www.azdigi.cf Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/azdigi.cf.conf Deploying Certificate to VirtualHost /etc/nginx/nginx.conf Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/azdigi.cf.conf Redirecting all traffic on port 80 to ssl in /etc/nginx/nginx.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://azdigi.cf and https://www.azdigi.cf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/azdigi.cf/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/azdigi.cf/privkey.pem Your cert will expire on 2021-04-14. 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" - 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 
    
    Như vậy đã cài đặt thành công SSL thông qua Certbot, đường đẫn lưu file chứng chỉ của website sẽ nằm tại đường dẫn tương ứng.
     - Certificate: /etc/letsencrypt/live/azdigi.cf/fullchain.pem
     - Private Key: /etc/letsencrypt/live/azdigi.cf/privkey.pem

    Chứng chỉ Let’s Encrypt chỉ có hiệu lực trong 90 ngày, do đó bạn có thể thiết lập cronjob  để chứng chỉ tự động gia hạn nếu như hết hạn.

    • Các bạn chạy câu lệnh sau để mở cửa sổ thêm Cronjob
    • export VISUAL=nano; crontab -e
      
      • Copy nội dung bên dưới và dán vào cửa sổ Crontab
      • 00 6 * * * /usr/bin/certbot renew --quiet
       

      Chú thích: Cronjob này có nghĩa là cứ đúng 6:00 AM nó sẽ check chứng chỉ, nếu chứng chỉ hết hạn sẽ tự động gia hạn. Ngược lại, nếu còn hạn sẽ không thực hiện gia hạn.

      Cài đặt SSL Let's Encrypt với Certbot trên Nginx

      Trường hợp cài ssl cho Subdomain có thể báo lỗi này nếu bạn chưa DNS 

    • CHÚ Ý: nếu cài ssl cho subdomain: cần phải setup record A cho cả subdomain.
    • Sau khi tạo trỏ IP xong thì chạy lệnh tạo SSL
    • Bước 3: Kiểm tra chứng chỉ sau cài đặt

      Để kiểm tra chính xác hơn website của bạn đã được cài đặt thành công SSL chưa, bạn có thể kiểm tra thêm thông qua 2 cách bên dưới.

      Cách 1: Kiểm tra từ trình duyệt

      Bạn có thể truy cập website của mình ở trình duyệt và click vào biểu tượng ổ khóa như hình bên dưới kiểm tra. Tại đây sẽ hiển thị website đang sử dụng chứng chỉ của hãng nào, đồng thời cũng ghi rõ ngày cấp và ngày hết hạn.

      Cài đặt SSL Let's Encrypt với Certbot trên Nginx

      Cách 2: Check từ trang SSL Shopper

      Các bạn có thể truy cập trang SSL Checker theo đường dẫn: https://www.sslshopper.com/ssl-checker.html

      Sau đó bạn điền domain của mình vào và nhấn Check SSL . Lúc này toàn bộ thông tin về chứng chỉ của website sẽ được hiển thị đầy đủ như bên dưới.

      Cài đặt SSL Let's Encrypt với Certbot trên Nginx

       

      III. Tổng kết

      Như vậy ở bài viết này AZDIGI đã hướng dẫn bạn cách cài đặt nhanh SSL Let’s Encrypt lên website thông qua Certbot một cách nhanh chóng và đơn giản nhất. Việc cài đặt SSL tưởng chừng đơn giản này nhưng lại giúp ích khá nhiều cho website của bạn trong việc bảo mật cũng như rất tốt cho SEO. Hy vọng bài viết này sẽ giúp bạn cài đặt thành công.!

      Nếu thấy bài viết hữu ích, hãy chia sẻ rộng rãi đến mọi người để cùng biết cách cài đặt nhé.

      Nếu các bạn cần hỗ trợ các bạn có thể liên hệ bộ phận hỗ trợ theo các cách bên dưới:

    • Nguồn: https://azdigi.com/blog/linux-server/cai-dat-ssl-lets-encrypt-voi-certbot-tren-nginx/