Hướng dẫn cài lets encrypt ubuntu nginx năm 2024

Để sử dụng giao thức HTTPS trên trang web, bạn phải có chứng chỉ TLS/SSL và định cấu hình Nginx. Bạn có thể nhận được chứng chỉ từ cơ quan cấp chứng chỉ đáng tin cậy để kiếm tiền trong một số lượng lớn dịch vụ. Có thể sử dụng phiên bản miễn phí nhờ dịch vụ Let’s Encrypt và được mô tả ở đây trong bước 3. Bạn cũng cần thực hiện cấu hình Nginx cơ bản . Nếu bạn sử dụng chứng chỉ tự ký, trình duyệt sẽ hiển thị lỗi khi kiểm tra bảo mật.

1. Cấu hình SSL cơ bản

Nếu bạn đã mua chứng chỉ SSL, bạn phải tạo một chuỗi chứng chỉ hoàn chỉnh từ khóa công khai đã nhận và chuỗi trung tâm chứng nhận. Để thực hiện việc này, hãy đặt nội dung của tệp chuỗi ở cuối tệp khóa chung. Các tệp có thể có phần mở rộng .pem hoặc .crt.

cat cert.pem chain.pem > fullchain.pem

Bây giờ sao chép tập tin vào máy chủ của bạn. Một lựa chọn tốt là đặt khóa riêng (.key hoặc .pem) vào thư mục /etc/ssl/private/ và fullchain.pem vào /etc/ssl/certs/ .

Bây giờ hãy mở tệp cấu hình của máy chủ ảo của bạn (/etc/nginx/sites-available/domain-name.com) và thêm các dòng sau:

server { listen 443 ssl; server_name domain-name.com; # Your website’s domain name ssl_certificate /etc/ssl/certs/fullchain.pem; # Path to the full chain of your SSL certificate ssl_certificate_key /etc/ssl/private/privkey.pem; # Path to the private key of your SSL certificate }

Đừng quên thiết lập các tham số gốc và chỉ mục trong phần này, giống như trong phần HTTP. Khởi động lại Nginx.

systemctl restart nginx

2. Vô hiệu hóa các giao thức lỗi thời và bật ưu tiên cho mật mã máy chủ

Chỉ định việc sử dụng các phiên bản TLS 1.2 và 1.3 và mức độ ưu tiên cho mật mã máy chủ. Mở tệp /etc/nginx/nginx.conf và sửa hoặc thêm các dòng sau trong phần http.

http { … ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; … }

Khởi động lại Nginx.

systemctl restart nginx

3. Chuyển hướng từ HTTP sang HTTPS

Để định cấu hình trang web chỉ hoạt động qua HTTPS, bạn cần thêm chuyển hướng bằng HTTP. Mở tệp cấu hình của máy chủ ảo của bạn (/etc/nginx/sites-available/domain-name.com), xóa phần HTTP:

Giới thiệu

SSL là gì?

SSL là viết tắt của Secure Sockets Layer, là một tập tin nhỏ được mã hóa chứa dữ liệu thông tin của một website hoặc một tổ chức/công ty. Khi cài đặt chứng chỉ lên máy chủ website (webserver), nó sẽ cho phép website sử dụng kết nối an toàn (hay còn gọi là Giao thức HTTPS) khi giao tiếp giữa webserver và trình duyệt của người dùng. Khi dữ liệu truyền đi thông qua giao thức HTTPS, các dữ liệu sẽ được mã hóa và chỉ có webserver chứa khóa riêng (private key) thì mới có thể giải mã được dữ liệu này.

Cerbot là gì?

Certbot là một ứng dụng Let’s Encrypt phổ biến nhất và có trong hầu hết các bản phân phối Linux chính, bao gồm khả năng cấu hình tự động thuận tiện cho Apache và Nginx.

Hướng dẫn thực hiện

Lưu ý: Domain cần cài đặt SSL phải được trỏ về IP máy chủ

Để cài đặt SSL Let’s Encrypt với Certbot trên Nginx , các bạn có thể thực hiện theo các bước sau

Bước 1: Cài đặt Cerbot Let’s Encrypt Client

  • Cài đặt cerbot-nginx

sudo apt install certbot -y python3-certbot-nginx


Hướng dẫn cài lets encrypt ubuntu nginx năm 2024

  • Cho phép HTTPS thông qua tường lửa

sudo ufw allow 'Nginx Full'


### Bước 2: Cài đặt SSL Let’s Encrypt cho website

Để cài đặt SSL Let’s Encrypt cho website với Cerbot-nginx, chúng ta sẽ có cấu trúc câu lệnh bên dưới.

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

Ở đây mình làm mẫu với website demo.damtrungkien.com , nên cú pháp của mình sẽ như sau

sudo certbot --nginx -d demo.damtrungkien.com


Bây giờ bạn tiến hành điền các thông tin cần thiết để thiết lập SSL cho website.

` root@ubuntu20-04:~# sudo certbot --nginx -d demo.damtrungkien.com Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): admin@. ### Nhập email của bạn


Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory


(A)gree/(C)ancel: A ### Nhập A đồng ý điều khoản


Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom.


(Y)es/(N)o: N ### Nhập N từ chối nhận các thông báo khác của Let's Encrypt Obtaining a new certificate Performing the following challenges: http-01 challenge for demo.damtrungkien.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/default 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): 2 Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/default


Congratulations! You have successfully enabled https://demo.damtrungkien.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=demo.damtrungkien.com


IMPORTANT NOTES:

  • Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/demo.damtrungkien.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/demo.damtrungkien.com/privkey.pem Your cert will expire on 2022-09-17. 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

    `

Sau khi cài đặt xong, bạn truy cập website và kiểm tra kết quả. Như hình dưới là mình đã cài đặt SSL Let’s Encrypt cho website thành công với Cerbot-nginx.