Cài đặt Let’s Encrypt SSL cho Amazon Linux 2023 và Nginx

Photo of author

By Admin

Bảo mật trang web của bạn bằng SSL (Lớp cổng bảo mật) là điều cần thiết để bảo vệ thông tin nhạy cảm như mật khẩu, chi tiết thẻ tín dụng và dữ liệu khác được truyền giữa máy chủ của bạn và trình duyệt của người dùng. SSL cũng nâng cao uy tín và độ tin cậy của trang web của bạn, làm cho nó trở thành một thành phần quan trọng của dịch vụ lưu trữ web hiện đại. Trong blog này, chúng tôi sẽ hướng dẫn bạn quy trình thiết lập SSL trên Amazon Linux 2023 bằng nginx và Let’s Encrypt.

Việc cài đặt ssl sắp tới sẽ là điều bắt buộc khi mà phiên bản cập nhật của Chrome sắp tới sẽ hiện cảnh báo trên trình duyệt khi 1 trang web không cài đặt ssl mà chỉ dùng http.

Yêu cầu:

Server của bạn đã được cài đặt Nginx theo LEMP stack. Bạn có thể tham khảo bài viết sau nếu chưa cài đặt nginx:

Hướng dẫn cài đặt phpMyAdmin cho Amazon Linux 2023

Bước 1: Install Certbot

Certbot là một công cụ tự động hóa quá trình lấy và gia hạn chứng chỉ SSL từ Let’s Encrypt. Để cài đặt Certbot, hãy chạy lệnh sau

sudo python3 -m venv /opt/certbot/ 

sudo /opt/certbot/bin/pip install --upgrade pip 

sudo /opt/certbot/bin/pip install certbot certbot-nginx 

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

Bước 2: Tiến hành cài đặt ssl vào nginx

sudo certbot --nginx
[ec2-user@ip-xxx sites-enabled]$ sudo certbot --nginx
Saving debug log to /var/log/letsencrypt/letsencrypt.log

Which names would you like to activate HTTPS for?
We recommend selecting either all domains, or all domains in a VirtualHost/server block.

1: dev.xxx.com

2: test.xxx.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1
Certificate not yet due for renewal
Successfully deployed certificate for dev.xxx.com to /etc/nginx/sites-enabled/blog.xxx.conf 
Congratulations! You have successfully enabled HTTPS on https://dev.xxx.com

Tại bước bên trên sẽ tự động quét các domain đã cài đặt trên server của bạn. Tại bước này ta cần nhập vào số thứ tự của domain muốn cài ssl. Giả sử muốn cài đặt cả domain 1 và 2 thì sẽ nhập 1,2. Ngăn cách bởi dấu ,

Sau khi cài đặt thành công thì Let’s Encrypt sẽ tự động thêm vào file conf Nginx của domain bạn đã chọn như sau

ssl config
Sau khi cài ssl nội dung config được thêm vào

Bước 3. Cài đặt tự động gia hạn ssl

Chứng chỉ SSL/TLS từ Let’s Encrypt chỉ có hiệu lực trong một khoảng thời gian nhất định, thường là 90 ngày. Khi hết hạn ta chạy lệnh bên dưới để làm mới:

sudo certbot renew

Để tránh việc phải cài đặt chứng chỉ thủ công, bạn có thể thiết lập một công việc Cron để tự động gia hạn chứng chỉ.

Thêm dòng sau vào tệp crontab (chạy lệnh sudo crontab -e để chỉnh sửa):

0 0 1 * * certbot renew --quiet

Dòng này sẽ tự động chạy Certbot mỗi ngày đầu tiên trong tháng để gia hạn chứng chỉ. Nếu chứng chỉ gần hết hạn, Certbot sẽ tự động gia hạn chúng.

Để chạy lệnh cài đặt crojob mỗi ngày

0 * * * * certbot renew --quiet

Để lệnh chạy hàng tuần ta cài đặt lệnh

45 2 * * 6 certbot renew --quiet

option –quiet để các thông báo trong quá trình cài đặt không hiển thị, chỉ hiển thị khi bị lỗi.

Tổng kết

SSL là một thành phần thiết yếu của lưu trữ web hiện đại. Bằng cách làm theo các bước được nêu trong blog này, bạn có thể dễ dàng thiết lập SSL trên Amazon Linux 2023 bằng Nginx và Let’s Encrypt. Với SSL, bạn có thể bảo vệ thông tin nhạy cảm của người dùng và nâng cao uy tín cũng như độ tin cậy cho trang web của mình.

Viết một bình luận