NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
16/06/2023
Lượt xem

Cách bảo mật Nginx với Let’s Encrypt trên Ubuntu 20.04

16/06/2023
13 phút đọc
Lượt xem

Đánh giá

5/5 - (53 bình chọn)

Trong bài viết này, Vietnix sẽ hướng dẫn cách cài đặt, cấu hình và kích hoạt SSL/TLS để bảo mật Nginx với Let’s Encrypt trên Ubuntu 20.04 để bảo mật cho website của bạn. Với Let’s Encrypt, bạn có thể sử dụng chứng chỉ SSL miễn phí để bảo vệ thông tin cá nhân và dữ liệu trên website một cách hiệu quả và đáng tin cậy.

Giới thiệu về Let’s Encrypt

Let’s Encrypt là một dịch vụ (CA) cung cấp và hỗ trợ cài đặt chứng chỉ TLS/SSL một cách dễ dàng, miễn phí. Từ đó kích hoạt mã hoá HTTPS trên các máy chủ web. Nó đơn giản hoá quy trình bằng cách cung cấp ứng dụng khách hàng Certbot và tự động hoá hầu hết các bước cài đặt cần thiết. Vì vậy, toàn bộ quá trình lấy và cài đặt chứng chỉ hoàn toàn tự động trên cả ApacheNginx.

Dịch vụ cung cấp và hỗ trợ cài đặt chứng chỉ TLS/SSL Let's Encrypt
Dịch vụ cung cấp và hỗ trợ cài đặt chứng chỉ TLS/SSL Let’s Encrypt

Trong bài hướng dẫn này, Vietnix sẽ giúp bạn sử dụng Certbot để lấy chứng chỉ SSL miễn phí cho Nginx trên Ubuntu 20.04 cũng như thiết lập tự động gia hạn cho nó.

Bài hướng dẫn sẽ sử dụng tệp cấu hình máy chủ Nginx riêng, thay vì sử dụng tệp mặc định. Theo đó, bạn nên tạo tệp các server block cho từng tên miền vì nó giúp tránh các lỗi phổ biến và duy trì tệp mặc định dưới dạng cấu hình dự phòng.

Yêu cầu để bảo mật Nginx với Let’s Encrypt trên Ubuntu 20.04

  • Một máy chủ Ubuntu 20.04 đã được thiết lập sudo-enabled, tài khoản user non-root và một tường lửa.
  • Một tên miền đã được đăng kí, trong bài hướng dẫn này, Vietnix sử dụng example.com. Bạn có thể mua một tên miền từ Vietnix.
  • Hai bản ghi DNS được thiết lập sẵn cho máy chủ của bạn, vui lòng xem tài liệu dưới để biết thêm cách thêm chúng.
    •  Một bản ghi với example.com trỏ tới địa chỉ IP công cộng của máy chủ.
    •  Một bản ghi với www.example.com trỏ tới địa chỉ IP công cộng của máy chủ.
  • Nginx đã được cài đặt sẵn. Hãy đảm bảo rằng bạn có server block cho 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ụ.

Để bảo mật Nginx với Let’sEncrypt, bạn cần có một máy chủ cài đặt hệ điều hành Ubuntu 20.04. Nếu chưa có máy chủ hoặc muốn nâng cấp máy chủ, bạn có thể tham khảo các gói VPS tại Vietnix.

Vietnix hiện đang cung cấp nhiều gói dịch vụ máy chủ ảo (VPS) có cấu hình đa dạng, chi phí hợp lý như VPS Giá Rẻ, VPS Phổ Thông, VPS Cao Cấp, VPS GPU và VPS NVMe. Một số ưu điểm của VPS Vietnix phải kể đến như:

Nhanh tay đăng ký ngay hôm nay!

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

Bước đầu tiên để sử dụng Let’s Encrypt lấy 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 của Nginx với apt:

sudo apt install certbot python3-certbot-nginx

Khi hoàn tất, Certbot đã sẵn sàng để sử dụng, nhưng để nó tự động cấu hình SSL cho Nginx, ta cần phải thiết lập một số chi tiết trong cài đặt.

Bước 2: Xác nhận cấu hình của Nginx

Để Certbot có thể tự động cấu hình SSL, nó cần tìm đúng server block trong cấu hình Nginx của bạn. Cụ thể, điều này được thực hiện bằng cách tìm kiếm 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 đã làm theo các bước thiết lập server block trong hướng dẫn cài đặt Nginx của Vietnix, bạn cũng nên có một server block cho tên miền của mình tại /etc/nginx/sites-available/example.com với chỉ thị server_name đã được thiết lập một cách phù hợp.

Để kiểm tra lại, mở tệp cấu hình của tên miền bằng nano:

sudo apt insudo nano /etc/nginx/sites-available/example.comtall certbot python3-certbot-nginx

Tìm đến dòng server_name. Nó sẽ có dạng như sau:

... server_name example.com www.example.com; ...

Nếu nó không xuất hiện, hãy cập nhật và chỉnh sửa lại thiết lập ở các bước trên. Sau đó lưu và thoát trình chỉnh sửa.

Bây giờ hãy xác minh cú pháp chỉnh sửa cấu hình của bạn:

sudo nginx -t

Nếu bạn gặp lỗi, hãy mở lại tệp server block và kiểm tra lỗi chính tả hoặc ký tự bị thiếu. Nếu tất cả đã chỉnh xác, hãy tải lại Nginx để tải cấu hình mới:

sudo systemctl reload nginx

Bây giờ, Certbot đã có thể tìm thấy chính xác server block 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 thông HTTPS.

Bước 3: Cho phép HTTPS lưu thông qua tường lửa

Nếu bạn đã kích hoạt tường lửa ufw, Vietnix khuyến khích bạn nên điều chỉnh một số cài đặt để cho phép lưu thông HTTPS. Tuy nhiên, Nginx đã đăng ký sẵn một vài cấu hình với ufw khi cài đặt.

Bạn có thể thấy cấu hình hiện tại bằng cách:

Sudo ufw status

Nó sẽ hiện thị như bên dưới, điều đó có nghĩa chỉ duy nhất HTTP được cấp phép lưu thông đế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) 

Để cấp phép lưu thông HTTPS, hãy cho phép Nginx Full profile và xoá những Nginx HTTP profile dư thừa.

sudo ufw allow 'Nginx Full' sudo ufw delete allow 'Nginx HTTP'

Trạng thái sẽ hiện thị ra như bên dưới:

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)

Bây giờ, hãy chạy Certbot và lấy chứng chỉ cần thiết.

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

Certbot cung cấp nhiều cách để thu được chứng chỉ SSL thông qua các plugin. Plugin Nginx sẽ đảm nhiệm việc cấu hình lại Nginx và tải lại chúng khi cần thiết. Để sử dụng plugin này, gõ lệnh sau đây:

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

Câu lệnh trên sẽ chạy certbot với plugin –nginx, sử dụng -d để chỉ định tên miền mà chúng ta muốn áp dụng chứng chỉ.

Vì đây là lần đầu tiên chạy certbot, nên bạn sẽ được yêu cầu nhập địa chỉ email và đồng ý với các điều khoản dịch vụ. Sau khi làm điều này, certbot sẽ giao tiếp với máy chủ Let’s Encrypt, sau đó xác minh chính xác rằng bạn kiểm soát tên miền mà bạn yêu cầu chứng chỉ.

Nếu như thành công, Certbot sẽ hỏi bạn có muốn chỉnh sửa cấu hình HTTPS hay không.

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 quyết định của bạn và ấn Enter. Tệp cấu hình sẽ được cập nhật, Nginx sẽ reload để áp dụng cài đặt mới. Lúc này Certbot sẽ kết thúc bằng một thông báo rằng chương trình đã thành công và hiển thị 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/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

Đến đây, chứng chỉ của bạn đã được tải xuống, hãy thử tải lại trang web bằng https:// và chú ý đến báo cáo bảo mật của trình duyệt. Nếu có biểu tượng khoá, điều đó có nghĩa rằng trang web đang được bảo mật đúng cách. Hoặc nếu sử dụng SSL Labs Server Test, máy chủ web sẽ đạt điểm A.

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 90 ngày. Điều này nhằm khuyến khích người dùng tự động hoá quy trình gia hạn chứng chỉ của họ. Gói Certbot mà chúng ta đã cài đặt sẽ giúp giải quyết vấn đề này bằng cách thêm bộ hẹn giờ systemd, nó sẽ chạy hai lần một ngày và tự động gia hạn bất kỳ chứng chỉ nào trong vòng 30 ngày kể từ khi hết hạn.

Bạn có thể truy vấn trạng thái 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 lại, bạn có thể chạy thử với certbot

sudo certbot renew --dry-run

Nếu không gặp bất cứ lỗi nào, đồng nghĩa với bạn đã hoàn tất. Khi cần thiết, Certbot sẽ gia hạn chứng chỉ và tải lại Nginx để áp dụng các thay đổi. Nếu quá trình gia hạn tự động bị lỗi, Let’s Encrypt sẽ gửi thông báo đến địa chỉ email bạn đã chỉ định, cảnh báo rằng chứng chỉ của bạn sắp hết hạn.

Vietnix với hơn 11 năm hoạt động đã đồng hành với hơn 50.000 khách hàng cá nhân và doanh nghiệp. Đến năm 2022 Vietnix vinh dự được nhận giải Thương hiệu Việt Nam xuất sắc. Đồng thời, với tỷ lệ 97% khách hàng sau khi sử dụng dịch vụ tại Vietnix đã giới thiệu đến bạn bè, đồng nghiệp cũng là một minh chứng cho chất lượng dịch vụ luôn đáp ứng được mọi nhu cầu của khách hàng.

Nhanh tay đăng ký Vietnix VPS ngay và trải nghiệm dịch vụ ổn định, tốc độ cao, hỗ trợ nhanh chóng với nhiều ưu đãi hấp dẫn nhất.

  • Đị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

Lời kết

Trong hướng dẫn về cách bảo mật Nginx với Let’s Encrypt trên Ubuntu 20.04 này, bạn đã cài đặt client Certbot của Let’s Encrypt, tải xuống chứng chỉ SSL cho tên miề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ỉ. Nếu bạn có câu hỏi thêm về việc sử dụng Certbot, hãy để lại bình luận bên dưới Vietnix sẽ giúp bạn giải đáp những thắc mắc.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG