Phước

Phước

2023-09-06 14:23:48

Let's Encrypt Free TLS/SSL

   Bài viết này sẽ hướng dẫn chi tiết về cách cài đặt và sử dụng Certbot, một công cụ mạnh mẽ để quản lý chứng chỉ SSL/TLS miễn phí từ Let's Encrypt. Bạn sẽ được hướng dẫn từng bước, từ cài đặt Certbot trên hệ điều hành của bạn đến việc tạo và cấu hình chứng chỉ SSL cho các dự án web của bạn. Nếu bạn quan tâm đến việc bảo mật trang web của mình và muốn biết cách sử dụng chứng chỉ SSL miễn phí từ Let's Encrypt, bài viết này sẽ giúp bạn bắt đầu một cách dễ dàng và hiệu quả.

   Các thành phần sau đây được yêu cầu:

1. Một máy chủ chạy hệ điều hành CentOS 7 hoặc RHEL 7. Trong bài viết này dùng server cloud nên môi trường server không có bật firewall;

2. Một tên miền đã đăng ký với bản ghi DNS trỏ A hoặc AAAA record đến địa chỉ IPv4 (và tùy chọn là IPv6) của máy chủ của bạn.

   Các khái niệm cơ bản:

1. HTTPS và TLS/SSL

   HTTPS xây dựng trên chuẩn gốc của Hypertext Transfer Protocol (HTTP) để cung cấp trải nghiệm duyệt web an toàn hơn. Nó mã hóa lưu lượng mạng bằng Transport Layer Security (TLS), thay thế công nghệ Secure Sockets Layer (SSL) cũ hơn (và hiện đã không còn được khuyến nghị). HTTPS bảo vệ sự riêng tư và tính toàn vẹn của dữ liệu trong quá trình truyền và xác minh một trang web đối với người dùng cuối. Vì lý do này, HTTPS phải được triển khai trên các trang web xử lý dữ liệu tài chính hoặc cá nhân. Tuy nhiên, tất cả các tên miền đều được khuyến nghị mạnh mẽ để bật HTTPS và hiện tại, hầu hết tất cả các trang web đều sử dụng nó.

2. Let’s Encrypt

   Một máy chủ web phải có một chứng chỉ khóa công khai được ký bởi một Certificate Authority trước khi nó có thể chấp nhận yêu cầu HTTPS. Let's Encrypt là một trong những Cơ quan này được sử dụng rộng rãi nhất. Nó quản lý một dịch vụ tự động miễn phí phân phối chứng chỉ SSL/TLS cơ bản cho các trang web đủ điều kiện. Let's Encrypt sử dụng Giao thức Môi trường Automatic Certificate Management Environment (ACME) để tự động hóa quá trình cấp chứng chỉ thông qua một kỹ thuật thách thức-phản hồi. Trang web Let’s Encrypt cung cấp thông tin kỹ thuật chi tiết hơn về xác minh tên miền.

3. Certbot

   Certbot được phát triển bởi Tổ chức Electronic Frontier Foundation (EFF) với mục tiêu cuối cùng là cải thiện an ninh web bằng cách bật HTTPS. Nó tương thích với hầu hết các hệ điều hành cũng như phần mềm máy chủ web phổ biến như Apache và NGINX. Certbot có trách nhiệm liên lạc với Let's Encrypt để yêu cầu chứng chỉ, thực hiện bất kỳ thách thức ACME nào cần thiết, cài đặt chứng chỉ và cấu hình máy chủ web. Nó cũng có thể tự động xử lý quá trình gia hạn chứng chỉ. 

Install Snapd:

Snap là một trình quản lý gói phát triển bởi Canonical (nhà sản xuất của Ubuntu). Phần mềm được đóng gói dưới dạng snap (ứng dụng tự chứa và các phụ thuộc) và công cụ snapd được sử dụng để quản lý các gói này. Vì certbot được đóng gói dưới dạng snap, chúng ta cần cài đặt snapd trước khi cài đặt certbot. Mặc dù nó được cài đặt mặc định trên Ubuntu 16.04 và phiên bản sau này, nhưng nó cũng có sẵn cho hầu hết các bản phân phối Linux khác, bao gồm CentOS/RHEL 7.

1. Thêm kho lưu trữ EPEL

sudo yum install epel-release
sudo yum upgrade

2. Cài đặt snapd

sudo yum install snapd

3. Bật socket của snap

sudo systemctl enable --now snapd.socket

4. Tạo symbolic link

sudo ln -s /var/lib/snapd/snap /snap

Installing Certbot

1.  Remove bất kỳ gói certbot trước đây đã được cài đặt để tránh xung đột với gói Snap mới.

sudo yum remove certbot

2. Dùng Snap để cài Certbot

sudo snap install --classic certbot

3. Tạo symbolic link cho thư mục Certbot 

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

4. Chạy certbot command trong mode standalone để tạo 1 TLS/SSL cho example.com

certbot certonly -d hocdev.net

5. Kiểm tra thư mục cert

Cert not due for renewal, but simulating renewal for dry run
...
Congratulations, all simulated renewals succeeded:
  /etc/letsencrypt/live/hocdev.net/fullchain.pem (success)
  /etc/letsencrypt/live/hocdev.net/privkey.pem (success)

Bạn có thể sủ dụng cert và key trên gắn vào config của nginx hoặc apache để enable HTTPS. Chúc các bạn thành công.

Let's Encrypt Free TLS/SSL
1 Likes0 Comments