Let’s Encrypt là gì? Cách tạo chứng chỉ ssl miễn phí với Let’s Encrypt

5/5 - (1 bình chọn)

Let’s Encrypt là gì?

Như đã đề cập ở bài viết trước về SSL, kể từ 2014, Google đã chính thức ưu tiên các website hỗ trợ giao thức HTTPS trên kết quả tìm kiếm. Để giảm nguy cơ giả danh, đảm bảo an toàn cho người dùng, tích hợp chứng chỉ SSL vào một website có giao thức HTTPS là sự lựa chọn hàng đầu.

Để có chứng chỉ SSL, bạn phải đăng ký với các tổ chức xác thực với 3 loại: DV, OV và EV tùy theo từng loại hình website của bạn.

Những tổ chức xác thực Comodo, GeoTrust, Symantec,… đều có có thu phí. Vậy, có thể chứng chỉ SSL miễn phí không?

Let’s Encrypt là một nhà cung cấp chứng chỉ số SSL (Certificate Authority) hoàn toàn miễn phí nhằm cung cấp chứng nhận SSL cho cộng đồng nói chung. Đây là một dự án của Internet Research Group, một hiệp hội về dịch vụ cộng đồng.

Let’s Encrypt được tài trợ bởi nhiều công ty bao gồm Google, Facebook, Sucuri, Mozilla, Cisco, v.v…

Lợi ích khi sử dụng Let's Encrypt

Let's Encrypt tạo chứng chỉ SSL miễn phí như thế nào?

Mục tiêu của Let's Encrypt và giao thức ACME là thiết lập máy chủ HTTPS và để nó tự động có được chứng nhận đáng tin cậy trên trình duyệt mà không cần có bất kỳ sự can thiệp nào của con người. Điều này được thực hiện bằng cách chạy một trình quản lý chứng chỉ trên máy chủ web.

Để hiểu công nghệ của Let's Encrypt làm việc như thế nào, hãy cùng tìm hiểu quá trình thiết lập trang webhttps:.//example.com/với trình quản lý chứng chỉ hỗ trợ Let's Encrypt.

Có 2 bước trong quá trình này. Đầu tiên, trình quản lý sẽ chứng minh với CA rằng máy chủ web đang kiểm soát một tên miền. Sau đó, trình quản lý có thể yêu cầu, đổi mới hoặc thu hồi chứng chỉ cho tên miền đó.

Xác nhận tên miền:

Let's Encrypt xác định quyền quản trị máy chủ bằng khóa công khai. Lần đầu tiên, phần mềm quản lý tương tác với Let's Encrypt, nó tạo ra một cặp khóa mới và chứng minh với Let's Encrypt CA rằng máy chủ đang kiểm soát một hoặc vài tên miền. Điều này cũng tương tự như quá trình CA truyền thống tạo tài khoản và thêm tên miền vào tài khoản đó.

Let's Encrypt là gì? Cách tạo chứng chỉ ssl miễn phí với Let's Encrypt 1

Để khởi động quá trình này, trình quản lý yêu cầu Let's Encrypt CA cung cấp thông tin cần thiết để chứng minh rằng nó đang kiểm soát example.com. Let's Encrypt sẽ xem xét và đưa ra các yêu cầu, bạn cần hoàn thành nó để chứng minh mình có quyền kiểm soát tên miền. Bạn có hai lựa chọn:

Sau khi hoàn thành các yêu cầu, Let's Encrypt sẽ cung cấp cho trình quản lý chứng chỉ một cặp khóa riêng để chứng minh rằng nó kiểm soát cặp khóa.

Đến đây, trình quản lý đặt một tập tin trên đường dẫn được chỉ định trên trang web //example.com. Trình quản lý cũng ký một khóa riêng, sau khi hoàn thành sẽ thông báo cho CA rằng nó đã hoàn thành xác nhận.

Công việc tiếp theo của CA là kiểm tra xem các yêu cầu đưa ra đã được thỏa mãn hay chưa. CA xác minh chữ ký, cố gắng tải về tập tin từ máy chủ web và chắc chắn rằng nó sẽ lấy được nội dung mong muốn.

Nếu chữ ký hợp lệ, các yêu cầu đã được thỏa mãn, trình quản lý được xác định bằng khóa công khai được ủy quyền để làm quản lý chứng chỉ cho example.com. Cặp khóa mà trình quản lý sử dụng cho example.com được gọi là “cặp khóa ủy quyền”.

Cấp chứng chỉ và thu hồi

Khi trình quản lý có được “cặp khóa ủy quyền” thì việc yêu cầu, đổi mới, thu hồi chứng chỉ SSL trở nên đơn giản, chỉ cần gửi thông điệp quản lý chứng chỉ và ký với cặp khóa ủy quyền.

Để có được chứng chỉ cho tên miền, trình quản lý tạo PKCS#10 Certificate Signing Request, yêu cầu Let's Encrypt CA phát hành chứng chỉ cho example.com với một khóa công khai được chỉ định. Như thường lệ, CSR bao gồm chữ ký bằng khóa riêng tương ứng với khóa công khai trong CSR. Trình quản lý cũng ký cả CSR với khóa ủy quyền cho example.com để Let's Encrypt CA biết nó đã được ủy quyền.

Khi Let's Encrypt CA nhận được yêu cầu, nó sẽ xác minh cả hai chữ ký. Nếu tất cả mọi thứ có vẻ tốt, nó đưa ra một chứng chỉ cho example.com với khóa công khai từ CSR và trả lại cho trình quản lý.

Việc thu hồi chứng chỉ hoạt động theo cách tương tự. Trình quản lý ký yêu cầu thu hồi với cặp khóa ủy quyền cho example.com và Let's Encrypt CA xác minh rằng yêu cầu đó đúng là đã được ủy quyền. Khi đó, nó sẽ xuất thông tin thu hồi chứng chỉ vào các kênh thu hồi thông thường (như CRL, OCSP), dựa trên các bên thứ 3, như trình duyệt để chúng không chấp nhận chứng chỉ đã bị thu hồi.

Hướng dẫn tạo chứng chỉ SSL miễn phí với Let’s Encrypt

Let’s Encrypt là một lựa chọn hợp lý, miễn phí, hỗ trợ bảo mật domain của bạn khi bạn muốn test website.

Thao tác cài đặt như sau:

Bước 1: Mở truy cập SSH

VàoControl Panelcủa tài khoản hosting, bạn chọnTruy cập SSH.

Tại đây bạn chọnEnabled, kế tiếp chọnCập nhậtđể kích hoạt truy cập SSH

Những thông tin truy cập SSH nhưIP, port, username, password,bạn nên nhớ kĩ để sử dụng.

Bước 2: Cài đặt ACME client và Composer

Tiến hành kết nối SSH vào tài khoản của bạn: bạn sử dụng PuTTY điền các thông tin truy cập SSH bạn vừa có được và lần lượt chạy các lệnh sau trong cửa sổ command của PuTTY

git clone //github.com/kelunik/acme-client

cd acme-client

php -r "copy('//getcomposer.org/installer', 'composer-setup.php');";

php composer-setup.php;

php -r "unlink('composer-setup.php');";

php composer.phar install --no-dev

php bin/acme setup --server letsencrypt --email your@email.com

php bin/acme issue --domains yourdomain.com,www.yourdomain.com --path /home/username/public_html --server letsencrypt

Để phù hợp với tài khoản của mình, bạn cần thay đổiyour@email.com, yourdomain.com, username.

Sau đó, bạn sử dụng trình File Manager di chuyển tới

/home/username/acme-client/data/certs/acme-v01.api.letsencrypt.org.directory/yourdomain.com

Bước này sẽ tạo ra 2 file quan trọng trong tài khoản hosting.

fullchain.pem:chứa thông tin certificate của bạn

key.pem:chứa thông tin private key của bạn


Bước 3: Cài đặt SSL từ Control Panel

Sau khi đã có 2 files làfullchain.pemkey.pem, chúng ta sẽ vào mụcSSLControl Panel

Bạn lần lượt chọn domain cần cài đặt, sao chép nội dung filefullchain.pemvào Certificate: (CRT), nội dungfile key.pemvào Private Key: (KEY). Sau đó, bạn chọnCài đặtđể thực hiện.

Bước 4: Cài đặt Cronjob

Do Let’s Encrypt chỉ cung cấp xác nhận bảo mật cho tên miền của bạn trong thời hạn90 ngàykể từ ngày tạo nên bạn cần thực hiện chạy cronjob để gia hạn SSL này.

Vào Control Panel, chọn “Cron Job nâng cao”

Cài đặt Cronjob như hình sau

php acme-client/bin/acme issue --domains yourdomain.com,www.yourdomain.com --path /home/username/public_html --server letsencrypt

Một số lưu ý khi dùng Let’s Encrypt:

Đây là chính sách của Let’s Encrypt và không có trường hợp nào ngoài lệ.

Let’s Encrypt đưa ra 2 nguyên nhân:

– Bảo mật: Hạn chế thiệt hại, rủi ro, bị đánh cắp khoá và chứng chỉ đã cấp phát

– Khuyến khích tự động hoá và cấp phát mới chứng chỉ là cần thiết cho việc sử dụng.

Let’s Encrypt khuyến cáo người dùng nên tự động đổi mới giấy chứng nhận mỗi 60 ngày.

Exit mobile version