Cài đặt Let's Encrypt SSL trên Ubuntu 20.04 với Nginx và sử dụng Certbot
Yêu cầu ban đầu trước khi cài SSL Nginx Certbot
Để theo dõi hướng dẫn này, bạn cần:
Một máy chủ Ubuntu 20.04 đã được thiết lập theo hướng dẫn thiết lập máy chủ ban đầu cho Ubuntu 20.04, bao gồm một người dùng có quyền sudo và một tường lửa.
Một tên miền đã đăng ký. Hướng dẫn này sẽ sử dụng example.com. Bạn có thể sở hữu tên miền yêu thích bằng cách mua tên miền tại KDATA.
Cả hai bản ghi DNS sau đã được thiết lập cho máy chủ của bạn.
Một bản ghi A với example.com trỏ đến địa chỉ IP công cộng của máy chủ của bạn. Một bản ghi A với www.example.com trỏ đến địa chỉ IP công cộng của máy chủ của bạn. Nginx đã được cài đặt theo hướng dẫn Cách Cài đặt Nginx trên Ubuntu 20.04. Hãy chắc chắn rằng bạn đã có một khối máy chủ cho tên miền của bạn. Hướng dẫn này sẽ sử dụng /etc/nginx/sites-available/example.com làm ví dụ.
Các bước cài đặt SSL Nginx Certbot trên Ubuntu 20.04
Bước 1 — Cài đặt Certbot
Bước đầu tiên để sử dụng Let's Encrypt để có được chứng chỉ SSL là cài đặt phần mềm Certbot trên máy chủ của bạn.
Cài đặt Certbot và plugin Nginx của nó bằng apt:
sudo apt install certbot python3-certbot-nginx
Certbot đã sẵn sàng sử dụng, nhưng để nó có thể tự động cấu hình SSL cho Nginx, chúng ta cần xác minh một số cấu hình của Nginx.
Bước 2 — Xác nhận cấu hình Nginx
Certbot cần có khả năng tìm thấy khối máy chủ chính xác trong cấu hình Nginx của bạn để có thể tự động cấu hình SSL. Cụ thể, nó thực hiện điều này bằng cách tìm kiếm một chỉ thị server_name khớp với tên miền bạn yêu cầu chứng chỉ.
Nếu bạn đã tuân theo bước thiết lập khối máy chủ trong hướng dẫn cài đặt Nginx, bạn nên có một khối máy chủ cho tên miền của bạn tại /etc/nginx/sites-available/example.com với chỉ thị server_name đã được đặt đúng.
Để kiểm tra, mở tệp cấu hình cho tên miền của bạn bằng nano hoặc trình soạn thảo văn bản ưa thích của bạn:
sudo nano /etc/nginx/sites-available/example.com
Tìm dòng server_name hiện tại. Nó nên trông như thế này:
...
server_name example.com www.example.com;
...
Nếu có, thoát khỏi trình soạn thảo và tiếp tục bước tiếp theo.
Nếu không, hãy cập nhật nó để khớp. Sau đó, lưu tệp, thoát khỏi trình soạn thảo của bạn và xác minh cú pháp của các chỉnh sửa cấu hình của bạn:
sudo nginx -t
Nếu bạn nhận được một lỗi, mở lại tệp khối máy chủ và kiểm tra xem có chính tả hoặc ký tự nào đó bị thiếu không. Khi cú pháp của tệp cấu hình của bạn là đúng, làm mới Nginx để tải cấu hình mới:
sudo systemctl reload nginx
Certbot bây giờ có thể tìm thấy khối máy chủ chính xác và cập nhật nó tự động.
Tiếp theo, hãy cập nhật tường lửa để cho phép lưu lượng HTTPS.
Bước 3 — Cho phép lưu lượng HTTPS qua tường lửa
Nếu bạn đã kích hoạt tường lửa ufw, như được khuyến khích trong các hướng dẫn tiên quyết, bạn sẽ cần điều chỉnh các thiết lập để cho phép lưu lượng HTTPS. May mắn thay, Nginx đã đăng ký một số hồ sơ với ufw sau khi cài đặt.
Bạn có thể xem cài đặt hiện tại bằng cách gõ:
sudo ufw status
Nó sẽ có vẻ như thế này, có nghĩa là chỉ có lưu lượng HTTP được phép đến máy chủ web:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Để cho phép thêm lưu lượng HTTPS, hãy cho phép hồ sơ Nginx Full và xóa quyền phép không cần thiết cho hồ sơ Nginx HTTP:
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
Trạng thái của bạn nên nhìn như thế này bây giờ:
sudo ufw status
Kết quả sẽ là:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx Full (v6) ALLOW Anywhere (v6)
Tiếp theo, hãy chạy Certbot và lấy chứng chỉ của chúng ta.
Bước 4 — Lấy chứng chỉ SSL
Certbot cung cấp nhiều cách để lấy chứng chỉ SSL thông qua các plugin. Plugin Nginx sẽ đảm nhận việc cấu hình lại Nginx và làm mới cấu hình khi cần thiết. Để sử dụng plugin này, nhập lệnh sau:
sudo certbot --nginx -d example.com -d www.example.com
Lệnh này chạy certbot với plugin --nginx, sử dụng -d để chỉ định tên miền mà chứng chỉ sẽ có hiệu lực.
Nếu đây là lần đầu chạy certbot, bạn sẽ được nhắc nhập địa chỉ email và đồng ý với các điều khoản sử dụng. Sau khi làm như vậy, certbot sẽ liên lạc với máy chủ Let's Encrypt, sau đó chạy một thách thức để xác minh rằng bạn kiểm soát tên miền bạn đang yêu cầu chứng chỉ.
Nếu thành công, certbot sẽ hỏi bạn làm thế nào bạn muốn cấu hình cài đặt HTTPS của mình.
Output
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Chọn lựa của bạn và nhấn ENTER. Cấu hình sẽ được cập nhật, và Nginx sẽ làm mới để áp dụng các cài đặt mới. Certbot sẽ kết thúc với một thông báo cho bạn biết quá trình đã thành công và vị trí lưu trữ của chứng chỉ của bạn:
Output
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
Your cert will expire on 2020-08-18. 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, cài đặt và nạp. Hãy thử làm mới trang web của bạn bằng cách sử dụng https:// và chú ý đến chỉ báo bảo mật của trình duyệt. Nó nên cho thấy rằng trang web được bảo mật đúng cách, thường là với biểu tượng khóa. Nếu bạn kiểm tra máy chủ của mình bằng Kiểm tra Máy chủ SSL của SSL Labs, nó sẽ nhận một điểm A.
Hãy kết thúc bằng cách kiểm tra quá trình gia hạn tự động của Certbot.
Bước 5 — Xác minh tự động gia hạn Certbot
Chứng chỉ của Let’s Encrypt chỉ có hiệu lực trong chín mươi ngày. Điều này 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 họ. Gói certbot mà chúng ta đã cài đặt sẽ lo lắng cho việc này bằng cách thêm một bộ hẹn giờ systemd sẽ chạy hai lần mỗi ngày và tự động gia hạn bất kỳ chứng chỉ nào còn ba mươi ngày trước khi hết hạn.
Bạn có thể kiểm tra trạng thái của bộ hẹn giờ bằng systemctl:
sudo systemctl status certbot.timer
Output
● certbot.timer - Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Mon 2020-05-04 20:04:36 UTC; 2 weeks 1 days ago
Trigger: Thu 2020-05-21 05:22:32 UTC; 9h left
Triggers: ● certbot.service
Để kiểm tra quá trình gia hạn, bạn có thể thực hiện thử nghiệm mà không thay đổi gì trong thực tế với certbot:
sudo certbot renew --dry-run
Nếu bạn không thấy lỗi, bạn đã hoàn tất. Khi cần thiết, Certbot sẽ gia hạn chứng chỉ của bạn và làm mới Nginx để áp dụng các thay đổi. Nếu quá trình gia hạn tự động bao giờ đó thất bại, Let's Encrypt sẽ gửi một thông báo đến địa chỉ email bạn đã chỉ định, cảnh báo bạn khi chứng chỉ của bạn sắp hết hạn.
Các bước cài đặt SSL Nginx Certbot trên Ubuntu 20.04 đã được làm rõ trong hướng dẫn này, bạn đã cài đặt ứng dụng Let’s Encrypt Certbot, tải chứng chỉ SSL cho tên miền của bạn, cấu hình Nginx để sử dụng các chứng chỉ này và thiết lập tự động gia hạn chứng chỉ.
Mọi người cùng tìm kiếm: certbot nginx, certbot nginx ubuntu, let's encrypt nginx, certbot nginx ubuntu 20.04, certbot ubuntu 20.04, letsencrypt ubuntu nginx, install letsencrypt ubuntu 20.04 nginx, certbot ubuntu
Đến với Chứng chỉ SSL của KDATA. Với chúng tôi, an ninh mạng không còn là nỗi lo. Bảo vệ thông tin trực tuyến của bạn bằng cách mua Chứng chỉ SSL tại KDATA, giúp giảm thiểu rủi ro và tăng cường sự an toàn cho website của bạn. Hãy đầu tư vào sự an toàn ngay hôm nay với KDATA!
https://kdata.vn/ssl-certificate
👉 Liên hệ ngay KDATA hỗ trợ tận tình, support tối đa, giúp bạn trải nghiệm dịch vụ giá hời chất lượng tốt nhất