Tiếp theo series về Amazon Linux 2023, trong bài viết này mình sẽ trình bày chi tiết các bước cài đặt let’s encrypt ssl trên Amazon Linux 2023.
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 Amazon Linux 2023 của bạn đã được cài đặt Nginx theo LEMP hoặc LAMP stack. Bạn có thể tham khảo bài viết sau nếu chưa cài đặt LEMP:
Hướng dẫn cài đặt LEMP stack trên 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
Đối với server Nginx:
sudo /opt/certbot/bin/pip install certbot certbot-nginx
Đối với server Apache:
sudo /opt/certbot/bin/pip install certbot certbot-apache
Thực hiện link folder để certbot có thể chạy được.
sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
Bước 2: Tiến hành cài đặt sSL
Tiến hành cài đặt SSL trên Amazon Linux 2023 cho 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 ,
Tiến hành cài đặt SSL trên Amazon Linux 2023 cho Apache:
sudo certbot --apache
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
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.
Theo document của Cerbot, bạn cũng có thể run command bên dưới để tự động việc gia hạn ssl.
echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
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.
reference: