Bảo mật Nginx bằng SSL/TLS là một bước quan trọng để đảm bảo an toàn cho website. Let’s Encrypt cung cấp chứng chỉ SSL miễn phí, giúp mã hóa dữ liệu truyền giữa máy chủ và người dùng, ngăn chặn các cuộc tấn công đánh cắp thông tin. Trong bài viết này, mình sẽ hướng dẫn bạn cách bảo mật Nginx bằng Let’s Encrypt trên CentOS 7 đơn giản và hiệu quả.
Những điểm chính
- Chuẩn bị cho việc bảo mật Nginx với Let’s Encrypt trên CentOS 7: Nắm được các điều kiện tiên quyết cần thiết trước khi bắt đầu, giúp quá trình cài đặt diễn ra suôn sẻ, tránh gặp lỗi.
- Hướng dẫn bảo mật Nginx bằng Let’s Encrypt trên CentOS 7: Bao gồm các bước như cài đặt Certbot Let’s Encrypt Client, cài đặt và cấu hình Nginx, cập nhật tường lửa, lấy chứng chỉ,…
- Giới thiệu về Vietnix: Có thêm lựa chọn khi tìm kiếm nhà cung cấp dịch vụ VPS uy tín, chất lượng.
Cần chuẩn bị gì để có thể bảo mật Nginx bằng Let’s Encrypt trên CentOS 7?
Để bảo mật Nginx bằng Let’s Encrypt trên CentOS 7, bạn cần chuẩn bị những điều sau:
- Máy chủ CentOS 7: Bạn cần một máy chủ chạy CentOS 7 với một người dùng không phải root nhưng có quyền sudo để thực hiện các lệnh quản trị. Nếu chưa có máy chủ, bạn có thể tham khảo các gói VPS của Vietnix như VPS Giá Rẻ, VPS NVMe, VPS SSD và VPS AMD. Vietnix cung cấp đa dạng cấu hình và hỗ trợ nhiều hệ điều hành, bao gồm CentOS, Ubuntu, Debian, Windows Server,… cho phép bạn tùy chỉnh và cài đặt phần mềm theo nhu cầu.
- Tên miền: Bạn cần sở hữu một tên miền cho website của mình. Nếu chưa có, bạn có thể đăng ký tên miền trực tiếp tại Vietnix.
- Cấu hình DNS: Đảm bảo DNS của tên miền đã được trỏ đến địa chỉ IP của máy chủ CentOS 7. Let’s Encrypt sẽ xác minh quyền sở hữu tên miền của bạn trong quá trình cấp chứng chỉ. Ví dụ, nếu muốn lấy chứng chỉ cho example.com và www.example.com, cả hai bản ghi DNS này phải trỏ đến máy chủ của bạn.
Sau khi đã chuẩn bị đầy đủ, hãy cùng mình tiến hành cài đặt Let’s Encrypt để bảo mật Nginx trên CentOS 7 theo hướng dẫn dưới đây.

Hướng dẫn bảo mật Nginx bằng Let’s Encrypt trên CentOS 7
Bước 1: Cài đặt Certbot Let’s Encrypt Client
Bước đầu tiên khi sử dụng Let’s Encrypt để lấy chứng chỉ SSL là cài đặt certbot
trên máy chủ của bạn. Cách tốt nhất là cài đặt thông qua kho lưu trữ EPEL.
Bật cho phép truy cập vào kho lưu trữ EPEL trên máy chủ của bạn bằng cách nhập:
sudo yum install epel-release
Sau khi kho lưu trữ đã được kích hoạt, bạn có thể lấy gói certbot-nginx
bằng cách nhập:
sudo yum install certbot-nginx
Phần mềm certbot
Let’s Encrypt client hiện đã được cài đặt và sẵn sàng để sử dụng.
Bước 2: Cài đặt và cấu hình Nginx
Nếu chưa cài đặt Nginx bạn có thể cài đặt ngay bây giờ. Kho lưu trữ EPEL đã được kích hoạt từ phần trước đó, vì vậy bạn có thể cài đặt Nginx bằng cách nhập:
sudo yum install nginx
Sau đó, bắt đầu sử dụng Nginx bằng systemctl
:
sudo systemctl start nginx
Certbot có thể tự động cấu hình SSL cho Nginx nhưng cần phải tìm server
block chính xác trong cấu hình của bạn. Điều này được thực hiện bằng cách tìm kiếm server_name
phù hợp với tên miền bạn muốn cấp chứng chỉ. Nếu bạn sử dụng bản cài đặt mới của Nginx, bạn có thể cập nhật file cấu hình mặc định bằng vi
hoặc bất kỳ trình chỉnh sửa văn bản nào :
sudo vi /etc/nginx/nginx.conf
Tìm dòng server_name hiện có:
server_name _;
Thay thế dấu gạch dưới _
ở cuối bằng tên miền của bạn:
server_name example.com www.example.com;
Lưu file và thoát khỏi trình chỉnh sửa. Nếu bạn đang sử dụng vi
, nhập :x
, sau đó nhập y
khi được hỏi để lưu và thoát. Xác minh các chỉnh sửa của cấu hình bằng cách nhập:
sudo nginx -t
Nếu chạy không xuất hiện lỗi, bạn hãy tải lại Nginx để tải cấu hình mới:
sudo systemctl reload nginx
Certbot hiện có thể tìm thấy và cập nhật server
block chính xác. Tiếp theo, bạn sẽ cập nhật tường lửa cho phép lưu lượng HTTPS.
Bước 3: Cập nhật tường lửa
Nếu bạn đã bật tường lửa, hãy đảm bảo cổng 80 và 443 mở cho phép lưu lượng vào từ hai cổng này. Nếu bạn không chạy tường lửa thì có thể bỏ qua bước này.
Nếu bạn đang chạy tường lửa firewalld, bạn có thể mở các cổng trên bằng cách nhập lệnh:
sudo firewall-cmd --add-service=http
sudo firewall-cmd --add-service=https
sudo firewall-cmd --runtime-to-permanent
Nếu bạn đang chạy tường lửa iptables, các lệnh cần chạy phụ thuộc nhiều vào bộ quy tắc. Để đặt các quy tắc ban đầu, bạn có thể thêm quyền truy cập HTTP và HTTPS thông qua lệnh:
sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT
Bây giờ bạn đã sẵn sàng chạy Certbot và lấy chứng chỉ.
Bước 4: Lấy chứng chỉ
Certbot cung cấp nhiều cách để lấy chứng chỉ SSL thông qua các plugin khác nhau. Plugin Nginx sẽ tự động cấu hình lại Nginx và tải lại cấu hình khi cần thiết:
sudo certbot --nginx -d example.com -d www.example.com
Đây là lệnh chạy certbot
với plugin --ngin
dùng -d
chỉ định các tên mà bạn muốn áp dụng chứng chỉ.
Nếu đây là lần đầu tiên chạy certbot
, bạn sẽ được nhắc nhập địa chỉ email và đồng ý với các điều khoản dịch vụ. Sau đó, certbot
sẽ liên lạc với máy chủ Let’s Encrypt để chạy xác minh bạn kiểm soát miền mà bạn yêu cầu chứng chỉ.
Cấu hình sẽ được cập nhật và Nginx sẽ tải lại để lấy cấu hình mới. certbot
sẽ kết thúc với một thông báo quá trình đã thành công và nơi lưu trữ chứng chỉ của bạn:
Output
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/your_domain/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/your_domain/privkey.pem
Your certificate will expire on 2022-10-20. 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
Chứng chỉ của bạn được tải xuống, cài đặt và hoạt động. Hãy thử tải lại trang web bằng https://
và chú ý đến chỉ báo bảo mật của trình duyệt của bạn. Trang web được bảo mật đúng cách thường hiển thị với một biểu tượng khóa màu xanh lá cây.
Bước 5: Cài đặt tự động gia hạn
Chứng chỉ của Let’s Encrypt chỉ có giá trị trong chín 90 nhằm khuyến khích người dùng tự động hóa quá trình gia hạn chứng chỉ của mình. Bạn cần thiết lập một lệnh chạy định kỳ để kiểm tra chứng chỉ hết hạn và tự gia hạn chúng.
Sử dụng cron
để chạy kiểm tra gia hạn hàng ngày. Cron
là một dịch vụ hệ thống chạy các tác vụ định kỳ. Đầu tiên, bạn mở cron
và chỉnh sửa file crontab
.
sudo crontab -e
Trình chỉnh sửa văn bản sẽ mở crontab mặc định. Đó là một file văn bản trống. Dán vào dòng sau đây, sau đó lưu và đóng file:
. . .
15 3 * * * /usr/bin/certbot renew --quiet
Phần 15 3 * * *
của có nghĩa là “chạy lệnh sau đây lúc 3:15 sáng hàng ngày”. Bạn có thể chọn bất kỳ thời gian nào bạn muốn.
Lệnh renew
cho Certbot kiểm tra tất cả các chứng chỉ được cài đặt trên hệ thống và cập nhật chứng chỉ nào hết hạn trong ít hơn 30 ngày. --quiet
cho Certbot biết không xuất thông tin hoặc không đợi người dùng nhập vào.
cron
sẽ chạy lệnh này hàng ngày. Tất cả các chứng chỉ đã cài đặt sẽ được tự động gia hạn và tải lại khi còn 30 ngày hoặc ít hơn thì hết hạn.
Ngoài ra thì trên CentOS 7, thiết lập khóa SSH là một phương pháp bảo mật tốt cho việc truy cập máy chủ từ xa. Việc sử dụng khóa SSH không chỉ đảm bảo tính bảo mật cao hơn so với đăng nhập bằng mật khẩu, mà còn giúp tiết kiệm thời gian và tăng hiệu quả làm việc.
Vietnix – Nhà cung cấp VPS tốc độ, ổn định và hỗ trợ chuyên nghiệp
Vietnix là nhà cung cấp VPS uy tín với hơn một thập kỷ kinh nghiệm trong lĩnh vực dịch vụ máy chủ. Chúng tôi cam kết mang đến cho bạn tốc độ vượt trội với các gói VPS sử dụng ổ cứng SSD/NVMe, đảm bảo ứng dụng của bạn hoạt động mượt mà và hiệu quả. Sự ổn định của hệ thống Vietnix được đảm bảo bởi công nghệ tiên tiến và cơ sở hạ tầng hiện đại, giúp bạn yên tâm triển khai dự án mà không lo gián đoạn.
Đội ngũ hỗ trợ chuyên nghiệp của chúng tôi luôn sẵn sàng 24/7, tận tâm giải đáp mọi thắc mắc và hỗ trợ bạn trong suốt quá trình sử dụng dịch vụ. Hãy chọn Vietnix để trải nghiệm dịch vụ VPS chất lượng cao, tốc độ, ổn định và hỗ trợ tận tình nhất!
Thông tin liên hệ:
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
- Website:https://vietnix.vn/
Việc bảo mật Nginx bằng Let’s Encrypt trên CentOS 7 không chỉ giúp mã hóa dữ liệu, bảo vệ thông tin nhạy cảm mà còn nâng cao uy tín và trải nghiệm người dùng cho website của bạn. Với các bước hướng dẫn chi tiết trong bài viết, bạn có thể dễ dàng thiết lập chứng chỉ SSL/TLS miễn phí, đảm bảo an toàn cho lưu lượng truy cập. Nếu bạn có bất kỳ câu hỏi hoặc khó khăn nào, đừng ngần ngại để lại bình luận bên dưới.
Mọi người cũng đọc thêm: