Hướng dẫn cài đặt SSL Let’s Encrypt với Certbot trên Nginx
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
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
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.