Cấu hình SSL (Let’s Encrypt) với Apache trong Debian

SSL là viết tắt của từ Secure Sockets Layer. Đây là một tiêu chuẩn an ninh công nghệ toàn cầu tạo ra một liên kết giữa máy chủ web và trình duyệt. Liên kết này đảm bảo tất cả dữ liệu trao đổi giữa máy chủ web và trình duyệt luôn được bảo mật và an toàn. SSL đảm bảo rằng tất cả các dữ liệu được truyền giữa các máy chủ web và các trình duyệt được mang tính riêng tư, tách rời. SSL là một chuẩn công nghệ được sử dụng bởi hàng triệu trang web trong việc bảo vệ các giao dịch trực tuyến với khách hàng của họ.

Let’s Encrypt là một dịch vụ cung cấp chứng chỉ SSL miễn phí trọn đời được tài trợ bởi Mozilla, Akamai, SiteGround, Cisco, Facebook, … Let’s Encrypt hoàn toàn miễn phí, tự động và một cơ quan cung cấp chứng chỉ mở. Việc gia hạn sẽ được thực hiện trên website của bạn.

 

Ở bài viết này mình sẽ chia sẻ cho các bạn cách cấu hình Let’s Encrypt SSL cho website của bạn trong Debian. Chúng ta bắt đầu nhé 🙂

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

$ sudo apt-get install -y certbot

Bước 2: Tạo một chứng chỉ (certificate) cho domain của bạn.

$ sudo certbot certonly --webroot -w /var/www/tuankhaiit/public_html -d tuankhaiit

* Các bạn nhớ đổi đường dẫn thư mục root và domain của bạn bạn nhé 🙂

Sau khi enter các bạn sẽ được hỏi và chọn như trong trong hình nhé :). Lưu ý là lưu lại 2 đường dẫn ở cuối.

Bước 3: Cấu hình web server.

Các bạn chạy lệnh dưới để tạo một bản copy cấu hình mặc định SSL:

$ sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/tuankhaiit-ssl.conf

Mở tập tin tuankhaiit-ssl.conf để cấu hình theo bên dưới:

$ sudo vi /etc/apache2/sites-available/tuankhaiit-ssl.conf

Các bạn nhớ đổi domain và đường dẫn tương với của bạn nhé 🙂

Tiếp theo ta sẽ cấu hình để server tự động redirect tới HTTPS. Các bạn tạo một file có tên redirect-tuankhaiit.conf và cấu hình như bên dưới.

$ sudo vi /etc/apache2/sites-available/redirect-tuankhaiit.conf

Tiếp theo ra sẽ enable cấu hình vừa mới tạo và restart lại server.

$ sudo a2enmod rewrite
$ sudo a2enmod ssl
$ sudo a2ensite tuankhaiit-ssl.conf
$ sudo systemctl restart apache2

Vậy là xong :). Các bạn vào domain vừa mới cấu hình để tận hưởng kết quả.

Bước 4: Kiểm tra chứng chỉ SSL.

Các bạn truy cập vào link dưới để kiểm tra chứng chỉ SSL có vấn đề gì không vào xếp hạng bảo mật của nó.

https://www.ssllabs.com/ssltest/analyze.html?d=tuankhaiit.com

Bước 5: Gia hạn chứng chỉ SSL.

Tuy Let’s Encrypt cung cấp chứng chỉ SSL miễn phí nhưng chỉ có thời hạn trong 90 ngày. Ta cần phải gia lại hạn chứng chỉ trước 90 ngày để không bị gián đoạn.

$ sudo certbot renew

Nhưng sẽ thật phiền phức nếu cứ phải gõ lệnh trên mỗi 3 tháng một lần. Chẳng may một ngày nào đó bạn lại quên gia hạn thì toi :).

Để giải quyết vấn đề trên ta sẽ sử dụng Linux Schedule (Crontab) để chạy lệnh gia hạn trong một khoảng thời gian xác định.

Cài đặt Crontab:

$ sudo apt-get install cron

Tạo mới một file crontab:

$ sudo crontab -e

Thêm vào tập tin với cấu hình bên dưới:

0 2 1 * * sudo certbot renew  >> /var/log/renew.log

Crontab sẽ thực thi dòng lệnh trên mỗi 2 giờ sáng ngày 1 hàng tháng và log ra file renew.log

Cuối cùng reload lại server:

$ sudo service cron reload

Như vậy là chúng ta đã hoàn tất cấu hình SSL cho website của chúng ta.

 

Nếu có khó khăn gì các bạn đừng ngại đặt câu hỏi bên dưới phần bình luận, mình sẽ cố gắng giúp các bạn trong phạm vi kiến thức của mình.

Nếu bài viết hữu ích ừng quên like/share để mình có động lực chia sẻ nhiều hơn.

Chúc các bạn thành công!

 

Chia sẻ bài viết:

Trả lời

Email của bạn sẽ không được hiển thị công khai.