Cài đặt Let's Encrypt SSL trên Ubuntu 22.04 với Nginx và sử dụng Certbot

Một tên miền đã được đăng ký, với kịch bản sử dụng example.com. Bạn có thể sử dụng dịch vụ tra cứu và đăng ký tên miền tại KDATA.

Đã thiết lập cả hai bản ghi DNS sau 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ủ.
  • 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ủ.

Nginx đã được cài đặt theo hướng dẫn Cách Cài đặt Nginx trên Ubuntu 22.04. Hãy đảm bảo rằng bạn đã tạo một khối máy chủ cho tên miền của mình. Trong hướng dẫn này, chúng tôi sẽ sử dụng /etc/nginx/sites-available/example.com làm ví dụ.

Hướng dẫn từng bước install SSL Nginx Ubuntu 22.04

Bước 1 — Cài đặt Certbot

Certbot khuyến nghị sử dụng gói snap của họ để cài đặt. Gói snap hoạt động trên hầu hết các bản phân phối Linux, nhưng yêu cầu bạn đã cài đặt snapd trước để quản lý gói snap. Ubuntu 22.04 đi kèm với sự hỗ trợ cho snap ngay từ đầu, vì vậy bạn có thể bắt đầu bằng cách đảm bảo rằng snapd của bạn là phiên bản mới nhất:

sudo snap install core; sudo snap refresh core

Nếu bạn đang làm việc trên một máy chủ đã cài đặt một phiên bản cũ của certbot, bạn nên gỡ bỏ nó trước khi tiếp tục:

sudo apt remove certbot

Sau đó, bạn có thể cài đặt gói certbot:

sudo snap install --classic certbot

Cuối cùng, bạn có thể liên kết lệnh certbot từ thư mục cài đặt snap vào đường dẫn của bạn, để bạn có thể chạy nó chỉ bằng cách nhập certbot. Điều này không cần thiết với tất cả các gói, nhưng snap thường ít xâm lấn hơn theo mặc định, nên chúng không xung đột với bất kỳ gói hệ thống nào khác theo cách không may:

sudo ln -s /snap/bin/certbot /usr/bin/certbot

Bây giờ khi đã cài đặt Certbot, hãy chạy nó để có được chứng chỉ của chúng ta.

Bước 2 — Xác nhận cấu hình Nginx

Certbot yêu cầu khả năng tìm thấy đúng khối máy chủ Nginx trong cấu hình của bạn để tự động cấu hình SSL. Để thực hiện điều này, nó sử dụng chỉ thị server_name phải 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 đã tạo một khối máy chủ cho tên miền của bạn tại đường dẫn /etc/nginx/sites-available/example.com với chỉ thị server_name được đặt đúng cách.

Để kiểm tra, hãy 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 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à chuyển sang bước tiếp theo.

Nếu không có, hãy cập nhật để phù hợp. Sau đó lưu tệp, thoát khỏi trình soạn thảo và kiểm tra cú pháp của các chỉnh sửa cấu hình của bạn:

sudo nginx -t

Nếu gặp lỗi, hãy mở lại tệp khối máy chủ và kiểm tra xem có lỗi chính tả hoặc ký tự thiếu sót nào không. Khi cú pháp của tệp cấu hình đã được sửa, làm mới Nginx để áp dụng 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ủ đúng và cập nhật nó tự động.

Tiếp đến, hãy cập nhật firewall để cho phép lưu lượng HTTPS.

Bước 3 — Cho phép lưu lượng HTTPS qua firewall

Nếu bạn đã kích hoạt tường lửa ufw, như đề xuất trong phần "yêu cầu đầu tiên" bạn cần điều chỉnh cài đặt để cho phép lưu lượng HTTPS. Rất may, Nginx tự động đăng ký một số hồ sơ với ufw khi được cài đặt.

Bạn có thể xem cài đặt hiện tại bằng cách nhập:

sudo ufw status

Đầu ra giống như sau 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 sẽ như này:

sudo ufw status
Output
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 đến, chạy Certbot và lấy chứng chỉ SSL.

Bước 4 — Lấy chứng chỉ SSL

Có nhiều cách để lấy chứng chỉ SSL từ Certbot thông qua các plugin. Plugin Nginx sẽ chịu trách nhiệm cấu hình lại Nginx và tải lại cấu hình khi cần thiết. Nhập lệnh sau để sử dụng Plugin này:

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ẽ hợp lệ.

Khi chạy lệnh, bạn sẽ được nhắc nhập địa chỉ email và đồng ý với điều khoản dịch vụ. Sau khi làm điều này, bạn nên thấy một thông báo cho biết quá trình đã thành công và nơi chứa chứng chỉ của bạn:

Output
IMPORTANT NOTES:
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/your_domain/fullchain.pem
Key is saved at: /etc/letsencrypt/live/your_domain/privkey.pem
This certificate expires on 2022-06-01.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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, và cấu hình Nginx của bạn sẽ tự động chuyển hướng tất cả các yêu cầu web đến https://. Hãy thử làm mới trang web của bạn và lưu ý chỉ báo bảo mật của trình duyệt. Thông thường, nó sẽ cho thấy rằng trang web được bảo mật đúng cách, thường là với một biểu tượng khóa. Nếu bạn kiểm tra máy chủ của mình bằng SSL Labs Server Test, nó sẽ đạt được một điểm A.

Bước cuối cùng là kiểm tra quá trình gia hạn tự động.

Bước 5 — Xác nhận tự động gia hạn của Certbot

Chứng chỉ từ Let's Encrypt chỉ có hiệu lực trong khoảng chín mươi ngày để khuyến khích người dùng tự động hóa quá trình gia hạn. Gói certbot đã được cài đặt sẽ tự động xử lý điều này bằng cách thêm một bộ hẹn giờ systemd chạy hai lần mỗi ngày, tự động gia hạn bất kỳ chứng chỉ nào còn dưới 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 snap.certbot.renew.service
Output
○ snap.certbot.renew.service - Service for snap application certbot.renew
Loaded: loaded (/etc/systemd/system/snap.certbot.renew.service; static)
Active: inactive (dead)
TriggeredBy: ● snap.certbot.renew.timer

Để kiểm tra quá trình gia hạn, bạn có thể thực hiện một lần chạy thử nghiệm với certbot:

sudo certbot renew --dry-run

Nếu không có lỗi xuất hiện, bạn đã hoàn thành quá trình cài đặt. Certbot sẽ tự động gia hạn chứng chỉ khi cần và tải lại Nginx để áp dụng các thay đổi. Trong trường hợp quá trình gia hạn tự động thất bại, Let's Encrypt sẽ thông báo cho bạn qua địa chỉ email bạn đã cung cấp, cảnh báo khi chứng chỉ của bạn sắp hết hạn.

Trong hướng dẫn này, bạn đã install SSL Nginx Ubuntu 22.04 bằng cách sử dụng Certbot, tải chứng chỉ SSL cho tên miền của bạn, cấu hình Nginx để sử dụng 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 ubuntu 22.04, install certbot nginx ubuntu 22.04, install certbot ubuntu 22.04, certbot ubuntu 22.04, install certbot ubuntu 22.04 nginx, install ssl nginx ubuntu 22.04, ssl nginx ubuntu, cerbot nginx, certbot, certbot nginx, certbot nginx ubuntu, how to install let's encrypt ssl certificate on ubuntu 22.04

Đế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