Thiết lập LetsEncrypt cho Nginx bằng Certbot để có Chứng chỉ SSL miễn phí

Theo Wikipedia –

Let’s Encrypt là tổ chức phát hành chứng chỉ phi lợi nhuận do Nhóm nghiên cứu bảo mật Internet điều hành, cung cấp miễn phí chứng chỉ X.509 cho mã hóa bảo mật truyền tải.

1. Điều kiện tiên quyết cho LetsEncrypt Nginx

Trước khi bắt đầu cài đặt LetsEncrypt, chúng ta cần đảm bảo rằng cấu hình Nginx của chúng ta được đặt chính xác. Chương trình certbot trực tiếp đọc và ghi vào tệp Nginx.

Mở tệp cấu hình Nginx bằng trình chỉnh sửa nano:

sudo nano / etc / nginx / sites-available / default

Kiểm tra xem server_name có được đặt với địa chỉ miền của bạn hay không. Ví dụ như domain của mình

server_name demo.restorebin.com

Nếu bạn đã thực hiện các thay đổi để phản ánh tên máy chủ cho địa chỉ miền của mình, thì hãy kiểm tra tệp cấu hình bằng lệnh dưới đây:

sudo nginx -t

Nếu mọi thứ có vẻ ổn, hãy khởi động lại Nginx bằng lệnh dưới đây để thực hiện các thay đổi trên máy chủ.

sudo service restart nginx

2. Cài đặt Certbot cho Let’s Encrypt

sudo apt-get update 
sudo apt-get install software-properties-common 
sudo add-apt-repository universe

Bây giờ hãy thêm đường dẫn kho lưu trữ certbot vào apt để tìm nạp và nâng cấp certbot trong tương lai.

sudo add-apt-repository ppa: certbot / certbot 
sudo apt-get update

Cài đặt chương trình certbot trên đám mây Ubuntu bằng lệnh dưới đây.

sudo apt-get install certbot python-certbot-nginx

Sau khi cài đặt xong, hãy chạy lệnh dưới đây để tạo chứng chỉ. Điều này cũng sẽ sửa đổi tệp cấu hình khối Nginx để cho phép chuyển hướng HTTP sang HTTPS cùng với việc cập nhật vị trí chứng chỉ trực tiếp.

sudo certbot - nginx -d example.com -d www.example.com

Trong trường hợp của tôi, tôi sẽ chỉ cài đặt chứng chỉ tại demo.restorebin.com.

sudo certbot - nginx -d demo.restorebin.com

Bạn sẽ được nhắc nhập một số chi tiết trong khi tạo chứng chỉ dành riêng cho tên miền của bạn.

Trong quá trình này, bạn cũng sẽ được hỏi cách quản lý lưu lượng HTTP và được cung cấp hai tùy chọn.

  1. Không chuyển hướng – Không thực hiện thêm thay đổi nào đối với cấu hình máy chủ web.
  2. Chuyển hướng – Thực hiện tất cả các yêu cầu chuyển hướng để truy cập HTTPS an toàn.

Bạn nên chọn tùy chọn thứ hai để làm cho trang web hoặc blog được bảo mật hơn và chuyển hướng lưu lượng truy cập HTTP sang HTTPS để tránh vấn đề nội dung trùng lặp dưới dạng phiên bản HTTP & HTTPS.

3. Kiểm tra chứng chỉ SSL miền

Khi chứng chỉ được tạo thành công, bạn có thể kiểm tra tính xác thực và cho điểm tại SSLLabs.com. Sao chép và dán URL vào trình duyệt ở định dạng bên dưới thay thế tên miền của bạn.
Đối với www.example.com tại:

https://www.ssllabs.com/ssltest/analyze.html?d= www.example.com

Ví dụ.com tại:

https://www.ssllabs.com/ssltest/analyze.html?d= example.com

Tôi sẽ kiểm tra chứng chỉ SSL cho demo.restorebin.com tại URL bên dưới.

https://www.ssllabs.com/ssltest/analyze.html?d= demo.restorebin.com

Bài kiểm tra sẽ mất một vài phút để hoàn thành. Nó sẽ kiểm tra tất cả các thông số và cấu hình bao gồm cả trong cấu hình Nginx.

Đừng mong đợi SSL đạt điểm A + hoàn hảo , chúng tôi chưa hoàn toàn định cấu hình Nginx với thiết lập bảo mật bổ sung. Chúng tôi sẽ đề cập đến vấn đề đó trong phần sau của loạt bài này.

4. Gia hạn chứng chỉ LetsEncrypt cho Nginx

Chứng chỉ Let’s Encrypt chỉ được phát hành trong 90 ngày. Nếu chúng tôi không gia hạn chứng chỉ, chứng chỉ sẽ hết hạn sau 90 ngày. Nhưng rất may, chương trình certbot có khả năng tự động gia hạn chứng chỉ SSL 30 ngày trước khi hết hạn.

Bạn cũng có thể kiểm tra tính hợp lệ của chứng chỉ bằng cách nhấn vào ổ khóa trên tên miền và chọn chứng chỉ.

Khi certbot đang được cài đặt, nó cũng thêm một quy tắc vào các công việc CRON để kiểm tra tính hợp lệ của chứng chỉ hàng ngày.

Chúng ta có thể kiểm tra xem chứng chỉ có cần gia hạn hay không bằng cách nhấn lệnh dry run

sudo certbot renew

Bạn cũng có thể xem các chứng chỉ đã cài đặt cho tất cả các miền trên máy chủ của mình bằng lệnh dưới đây:

sudo certbot certificates

Ok vậy là đã xong – chúc các bạn thành công

Leave a Comment