Hướng dẫn cài đặt SSL Let’s Encrypt với Certbot trên Nginx

Tác giả: 26/08/2022

Trong bài viết này Nhân Hòa sẽ hướng dẫn các 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 này nhé.

I- Giới thiệu SSL Let’s Encrypt :

  • SSL là chữ viết tắt của Secure Sockets Layer (Lớp socket bảo mật). Một loại bảo mật giúp mã hóa liên lạc giữa website và trình duyệt. Công nghệ này đang lỗi thời và được thay thế hoàn toàn bở TLS.
  • Let’s Encrypt là một tổ chức xác thực SSL giống như Comodo, GeoTrust, Symantec nhưng có đ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.

II- Chuẩn bị :

  • 1 máy chủ chạy hệ điều hành CentOS 7,CentOS 8… đã cài đặt LEMP Stack
  • Trỏ tên miền về IP máy chủ ( Nếu cài đặt SSL cho cả www.domain.com thì subdomain www cũng phải trỏ về IP máy chủ )

III- 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. Giúp đơn giản hóa quy trình lấy và gia hạn chứng chỉ SSL từ Let’s Encrypt và tự động kích hoạt HTTPS trên máy chủ của bạn.

  • Cài đặt EPEL repository

       yum -y install epel-release

  • Tiếp theo cài đặt certbot-nginx bằng câu lệnh sau:

       yum -y install certbot-nginx

Như hình là đã cài đặt thành công Certbot

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

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

                  certbot –nginx -d levankhanh.xyz -d www.levankhanh.xyz

[root@khanhlv-lab-ssl ~]# certbot –nginx -d levankhanh.xyz -d www.levankhanh.xyz

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): khanhlv@nhanhoa.com.vn (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.

Deploying Certificate to VirtualHost /etc/nginx/conf.d/default.conf

Deploying Certificate to VirtualHost /etc/nginx/conf.d/default.conf

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/default.conf

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/default.conf

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Congratulations! You have successfully enabled https://levankhanh.xyz and

https://www.levankhanh.xyz

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

IMPORTANT NOTES:

 – 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

Thông báo như vậy là đã 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/levankhanh.xyz/fullchain.pem
  • Private Key : /etc/letsencrypt/live/levankhanh.xyz/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ở Cronjob

          crontab -e

  • Copy nội dung bên dưới paste vào Crontab.Sau đó lưu và đóng Cronjob

         59 23 * * * /usr/bin/certbot renew –quiet

Chú thích :

  • 59 23 * * * /usr/bin/certbot : Cứ đúng 23h59 hằng ngày Cronjob sẽ chạy (Bạn có thể thay đổi thời gian tùy theo nhu cầu)
  • Renew : Sẽ kiểm tra tất cả chứng chỉ được cài đặt trên máy chủ và cập nhật bất cứ thiết lập nào đã hết hạn ít nhất 30 ngày.
  • –quiet : Certbot không được suất ra thông tin hoặc là đợi để người dùng nhập thông tin vào.

Bước 3: Kiểm tra chứng chỉ SSL 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ách 2: Kiểm tra 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 tên miền 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.

IV- Tổng kết

 Như vậy trong bài viết này Nhân Hòa đã hướng dẫn các bạn cách cài đặt SSL Let’s Encrypt lên website thông qua Certbot một cách nhanh chóng và đơn giản nhất. Hy vọng bài viết này sẽ giúp các bạn cài đặt thành công.

26/08/2022

Trả lời