Hiện tại, kết nối HTTPS đang là yêu cầu mặc định của hầu hết trình duyệt và các phần mềm diệt virus. Nếu không muốn website, server của mình bị tụt hạng chỉ vì không cài đặt SSL, bài viết này sẽ hướng dẫn bạn cài đặt chứng chỉ SSL trên NGINX hoàn toàn miễn phí nhé!
Tìm hiểu về cách cài đặt chứng chỉ SSL trên NGINX
Cần những gì khi cài đặt chứng chỉ SSL trên NGINX?
Để có thể cài đặt SSL trên NGINX, bạn sẽ cần phải chuẩn bị đầy đủ những yêu cầu sau đây:
- Server của bạn đang có phải là NGINX hoặc NGINX plus
- Bạn cần phải có toàn quyền tên miền muốn cài đặt chứng chỉ SSL. Nếu chưa có tên miền, bạn có thể mua ngay tên miền giá rẻ của Tino Group nhé!
- Bạn sẽ cần phải tạo bảng ghi DNS liên kết tên miền và địa chỉ IP công cộng của server.
- Tài khoản có quyền truy cập sudo (tài khoản có quyền quản lý nâng cao)
Đối với phiên bản trả phí, bạn sẽ cần phải tải các tài liệu sau:
- Chứng chỉ được cấp bởi tổ chức xác thực
- Chứng chỉ trung gian
- Khóa không công khai/ private key
Cài đặt SSL trên NGINX có lợi ích gì?
Nếu bạn vẫn đang thắc mắc về những lợi ích của việc cài đặt SSL, bạn có thể tham khảo những lợi ích như sau:
- Được các công cụ tìm kiếm, phần mềm diệt virus tin tưởng hơn
- Website có kết nối HTTPS toàn hơn
- Website của bạn trở nên chuyên nghiệp hơn trong mắt của người truy cập
- Giảm thiểu các vấn đề an ninh mạng vốn đang vô cùng khó lường
NGINX là gì?
NGINX là một máy chủ web mã nguồn mở đa năng được phát triển bởi một kỹ sư phần mềm người nga có tên là Igor Sysoev. Máy chủ này có rất nhiều chức năng hay có thể kết đến như: mail proxy, proxy đảo ngược, HTTP cache, bộ cân bằng tải – load balancer,…
Hầu hết các phiên bản NGINX là miễn phí, nhưng họ cũng có phát hành phiên bản trả phí với thương hiệu là NGINX Plus.
Các phiên bản đã phát hành của NGINX bao gồm:
- NGINX 1.11.0 phát hành vào ngày 24 tháng 5 năm 2016.
- NGINX 1.12.0 phát hành vào ngày 12 tháng 4 năm 2017
- NGINX 1.13.0 phát hành vào ngày 25 tháng 4 năm 2017
- NGINX 1.14.0 phát hành vào ngày 14 tháng 4 năm 2018
- NGINX 1.15.0 phát hành vào ngày 5 tháng 6 năm 2018
Bạn có thể tìm hiểu thêm thông tin về tại trang chủ của họ.
Cài đặt SSL trên NGINX miễn phí bằng Let’s Encrypt
Vơi hướng dẫn trong phần này, bạn sẽ không cần phải tạo riêng một chứng chỉ trên trang Let’s Encrypt. Tất cả hoạt động cài đặt sẽ trên giao diện dòng lệnh. Vì vậy, bạn sẽ cần phải có:
- Một tài khoản có quyền sudo để có thể xử lý các công việc nâng cao.
- Quyền quản lý tên miền để thực hiện một vài bước thiết lập DNS
- Hệ điều hành của bạn có thể là Ubuntu, hoặc các bản phân phối khác của Linux.
Trong phần hướng dẫn này, Tino Group sử dụng phiên bản Ubuntu 16.04 và những câu lệnh trong này sẽ phù hợp nhất với Ubuntu.
Tải Let’s Encrypt Client
Đầu tiên, bạn sẽ cần phải tải Certbot – Let’s Encrypt client tuần tự bằng các dòng lệnh sau:
apt-get update
sudo apt-get install certbot
apt-get install python-certbot-nginx
Nếu bạn sử dụng Ubuntu 18.04 hoặc cao hơn thay thế cho phiên bản Python 3, bạn sử dụng dòng lệnh sau đây:
apt-get update
sudo apt-get install certbot
apt-get install python3-certbot-nginx
Quá trình cài đặt sẽ mất từ 30 giây đến 5 phút, bạn có thể kiên nhẫn chờ đợi hoặc tiếp tục đọc bước tiếp theo.
Cài đặt NGINX
Certbot sẽ tự động cấu hình NGINX sao cho phù hợp nhất với chứng chỉ SSL, certbot tìm kiếm và sửa đổi server, các khối cấu hình NGINX có chứa server_name và tên miền bạn đang yêu cầu chứng chỉ SSL. Và bạn sẽ phải làm theo các hướng dẫn sau đây:
Bước 1: truy cập vào thư mục /etc/nginx/conf.d và thay đổi thành tên miền của bạn.
Bước 2: chỉ định tên miền với server_name, ví dụ như sau:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name tenmiencuaban.com www.tenmiencuaban.com;
}
Trong đó, 80 là cổng HTTP mặc định.
Bước 3: bạn sẽ cần thực thi dòng lệnh sau nhằm xác nhận thay đổi và khởi động lại NGINX:
nginx -t && nginx -s reload
Lấy chứng chỉ SSL/TLS
Certbot sẽ tự động thực hiện hầu hết các công việc cấu hình và tự động cấu hình NGINX khi có bất cứ thay đổi nào. Việc bạn cần thực hiện là chạy lệnh sau để tự động tạo chứng chỉ SSL:
sudo certbot --nginx -d example.com -d tenmiencuaban.com
Tiếp theo, certbot sẽ hỏi bạn một số câu hỏi như:
- Email để liên lạc khi có sự thay đổi hoặc cập nhật chứng chỉ
- Đồng ý với điều khoản sử dụng dịch vụ
- Đồng ý thu thập một số dữ liệu hay không
Hầu hết bạn chỉ cần nhập câu trả lời y để đồng ý hoặc n để từ chối.
Sau khi chứng chỉ được hoàn tất, NGINX sẽ tự động tải lại để tương thích với các cài đặt mới và certbot sẽ gửi một lời chúc mừng đến bạn như sau:
Trong đó, dòng chữ “Your cert will expire on 2024-09-11.” nói lên rằng: chứng chỉ của bạn sẽ hết hạn sau 90 ngày nữa và ngày hết hạn là ngày 11/09/2021.
Ta sẽ nhìn lại file tenmiencuaban.conf để thấy Certbot thay đổi chúng ra sao:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
server_name tenmiencuaban.com www.tenmiencuaban.com;
listen 443 SSL; # managed by Certbot
# RSA certificate
SSL_certificate /etc/letsencrypt/live/tenmiencuaban.com/fullchain.pem; # managed by Certbot
SSL_certificate_key /etc/letsencrypt/live/tenmiencuaban.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-SSL-nginx.conf; # managed by Certbot
# Redirect non-https traffic to https
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot
}
Tự động cài đặt lại chứng chỉ SSL của Let’s Encrypt
Để tiết kiệm thời gian và công sức cài đặt lại chứng chỉ SSL mỗi 90 ngày khi chứng chỉ này hết hạn, bạn có thể cài đặt một cronjob lặp lại sau mỗi 90 ngày như sau:
Bước 1: mở file crontab:
crontab -e
Bước 2: bạn sẽ cần phải yêu cầu Certbot chạy hằng ngày để kiểm tra xem chứng chỉ còn hạn hay không bằng dòng lệnh sau:
0 5 * * * /usr/bin/certbot renew --quiet
Trong đó, khoảng thời gian 5 giờ sáng certbot tự động chạy kiểm tra và thực hiện việc cập nhật. Lệnh này nhằm yêu cầu Certbot không cần thông báo đến bạn và âm thầm thực hiện việc cập nhật.
Bước 3: cuối cùng, bạn lưu và đóng tất cả các file lại. Chứng chỉ sẽ được cập nhật và tải lại tất cả.
Vậy là bạn đã vừa hoàn thành việc cài đặt chứng chỉ SSL trên NGINX rồi đấy! Bạn chỉ cần kiểm tra lại xem kết nối của bạn đã chuyển từ HTTP thành HTTPS nữa hay không nhé! Chúc bạn thành công!
Những câu hỏi thường gặp về cách để đặt chứng chỉ SSL trên NGINX
Có nên sử dụng Let’s Encrypt hay không?
Câu trả lời sẽ hoàn toàn tùy thuộc vào bạn. Nếu bạn muốn có một chứng chỉ SSL hoàn toàn miễn phí có thể đảm bảo những yếu tố cơ bản nhất, hoặc bạn đang muốn học tập cài đặt SSL, Let’s Encrypt sẽ phù hợp với bạn.
Trong trường hợp bạn là một doanh nghiệp lớn, đặc biệt là các doanh nghiệp chuyên về sàn thương mại điện tử, bạn nên tìm đến một đơn vị uy tín và mua chứng chỉ SSL chuyên nghiệp để đạt được hiệu quả cao nhất.
Làm sao để cài SSL trên IIS 8/8.5/10?
Nếu bạn đang tìm cách để cài SSL trên IIS 8/8.5/10, bạn có thể tham khảo bài viết đầy đủ của Tino Group tại: Hướng dẫn cài đặt SSL trên IIS 8/8.5/10.
TSL là gì?
TLS là phiên bản tốt hơn của SSL và TLS đang được sử dụng phổ biến ở thời điểm hiện tại. Tuy nhiên, đa phần các nhà cung cấp dịch vụ sẽ bán cho bạn TLS dưới cái tên SSL vì tính thông dụng của từ này.
Làm sao để cài đặt SSL cho website WordPress trên Amazon Lightsail?
Để cài đặt SSL cho website WordPress trên Amazon Lightsail, bạn hãy tham khảo bài viết hướng dẫn đầy đủ chính thức từ AWS để cấu hình chính xác nhất bạn nhé!
Mua chứng chỉ SSL ở đâu?
Bạn có thể mua chứng chỉ SSL an toàn, uy tín với nhà cung cấp Tino Group. Chúng tôi cam kết sẽ mang lại dịch vụ tốt nhất dành cho bạn, tìm hiểu thêm tại đây.