Nội dung bài viết
1. Let’s Encrypt là gì
Let’s Encrypt là nhà cung cấp chứng chỉ SSL miễn phí, tự động, hoạt động vì lợi ích của cộng đồng. Let’s Encrypt được quản lý bởi Internet Security Research Group (ISRG) – một hiệp hội về dịch vụ cộng đồng.
Let’s Encrypt cung cấp cho những người quản trị website một chứng chỉ số để kích hoạt HTTPS (SSL hoặc TLS) cho website của bạn.
Nó hoàn toàn miễn phí, dễ dàng cài đặt. Tuy nhiên thời hạn của SSL miễn phí này là 3 tháng, và bạn đừng quá lo lắng, tác vụ gia hạn sẽ có thể cài đặt tự động. Sau khi cài đặt, trang web của bạn sẽ có một ổ khóa trên thanh địa chỉ của trình duyệt, khi người dùng truy cập vào.

2. Certbot là gì
Certbot là một công cụ giúp bạn tạo ra keys (Khoá) và signs (Chữ ký) của chứng chỉ SSL, và tự động đăng ký với tổ chức Let’s Encrypt sau đó download chứng chỉ Let’s Encrypt về Server cho bạn. Quá trình đăng ký SSL sẽ được tự động hoá các bước cần thiết. Tiếp theo mình sẽ hướng dẫn các bạn sử dụng certbot Let’s Encrypt client để đăng ký chứng chỉ SSL miễn phí cho website. Môi trường mình thực hiện là trên Centos 7.
3. Cài đặt Certbot Let’s Encrypt Client
Enable access đến the EPEL repository trên máy chủ của bạn
sudo yum install epel-release
Cài đặt certbot-nginx
sudo yum install certbot-nginx
4. Cài đặt Nginx
Nếu server đã cài sẵn Nginx, hãy bỏ qua bước này
sudo yum install nginx
Start Nginx
sudo systemctl start nginx
Sau đó bạn cần sửa server_name trong cấu hình của nginx là tên website bạn cần cài đặt SSL, nếu đã có tên server_name rồi thì không cần update. Đường dẫn mặc định khi mới cài xong nginx: “etc/nginx/conf.d/default.cofn”
server {
listen 80;
server_name websitecuaban.com www.websitecuaban.com;
…….
}
Test syntax và restart nginx
sudo nginx -t
sudo systemctl reload nginx
5. Cấu hình Firewall
Nếu bạn đang bật tường lửa, cần mở port 80 và 443
5.1 Firewalld
sudo firewall-cmd –add-service=http
sudo firewall-cmd –add-service=https
sudo firewall-cmd –runtime-to-permanent
5.2 Iptables
sudo iptables -I INPUT -p tcp -m tcp –dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp –dport 443 -j ACCEPT
6. Nhận chứng chỉ SSL
Certbot cung cấp nhiều cách khác nhau để có được chứng chỉ SSL, thông qua các plugin khác nhau. Plugin Nginx sẽ đảm nhiệm việc cấu hình lại Nginx và tải lại cấu hình khi nào cần thiết. Tham số -d là địa chỉ tên miền.
sudo certbot –nginx -d websitecuaban .com -d www. websitecuaban .com
Nếu lần đầu tiên chạy certbot, bạn cần nhập địa chỉ email để đồng ý với các điều khoản.
Output
Please choose whether HTTPS access is required or optional.
-------------------------------------------------------------------------------
1: Easy - Allow both HTTP and HTTPS access to these sites
2: Secure - Make all requests redirect to secure HTTPS access
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Chọn 1 hoặc 2 rồi enter.
OutputIMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your cert will
expire on 2017-10-23. 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"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- 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