Share
Trang chủ / Tất cả hướng dẫn / Web development / SSL miễn phí cho shared host bằng Let’s Encrypt

SSL miễn phí cho shared host bằng Let’s Encrypt

Hướng dấn tạo chứng chỉ SSL miễn phí cho shared host bằng Let's Encrypt. Shared host cũng có thể dùng https với khả năng bảo mật cao.

SSL miễn phí cho shared

SSL là một chuẩn an bảo mật trong giao thức web Chúng chỉ SSL thường có giá cao, nhiều bạn dùng shared host không có điều kiện để mua. Rất may là project Let’s Encrypt có thể giúp bạn sở hữu một chứng chỉ SSL hoàn toàn miễn phí.

Ngày xưa mình cũng nghĩ rằng, Let’s Encrypt cần phải có server để chạy, Gần đây bạn mình ( Nguyễn Công Hoàng ) chỉ mình một cách để generate chứng chỉnh SSL mà không cần phải có server. Thực ra thì Let’s Encrypt cần phải chạy trên server là để tự tự động generater chứng chỉ ssl và add tự động vào server, cũng như tự động renew. Nếu như bạn không có server để chạy, thì Let’s Encrypt cũng có thể tạo key ở local rồi bạn dùng key đó add thủ công vào host thông qua cpadmin hoặc những phần mềm admin tương tự, mỗi khi chứng chỉ hết hạn ( Chứng chỉ chỉ có giá trị trong 90 ngày ), bạn renew ở local, rồi thực hiện lại việc add chứng chỉ này lên host.

Untitled-1

Bài viết này hướng tới đối tượng không có server, VPS để chạy Let’s Encrypt.

Tạo chứng chỉ SSL

Bạn có thể chạy Let’t Encrypt trên hệ điều hành lõi Unix, bao gồm Mac, Ubuntu,…

Bước 1. Clone Let’t Encrypt

Let’s Encrypt đặt tên client của mình là certbot. Bạn dùng git để clone repo của certbot về máy theo cú pháp như sau:

git clone https://github.com/certbot/certbot

Sau khi xong thì di chuyển vào thư mục vừa clone:

cd certbot

Bước 2. Tạo chứng chỉ

Tạo chứng chỉ bằng file letsencrypt-auto. Theo các hướng dẫn trên trang chủ của Let’s Encrypt thì bạn sẽ tạo key tự động, Nhưng do chúng ta không chạy trên server, mà ta cần tạo ra key, nên ta sẽ thêm các tham số để tạo key thủ công.

./letsencrypt-auto certonly -a manual --rsa-key-size 4096 -d nemeanthemes.com -d www.nemeanthemes.com

Tiếp theo bạn sẽ cần phải nhập root/sudo password. Và sẽ có một thông báo nhỏ, nếu muốn tiếp tục, thì hãy chọn ‘yes’.

Lúc này, bạn sẽ cần phải xác thực domain, server. Chỉ cần làm theo hướng dẫn :Screen Shot 2016-06-05 at 10.48.59 AM

Để làm được như vậy, bạn cần ssh hoặc dùng ftp để tạo file như trong yêu cầu ở trên. Sau khi làm xong, bạn ấn enter và nó sẽ yêu cầu bạn thực hiện y như bước vừa rồi nhưng là một file và giá trị khác. Hãy cứ làm theo. Khi xong vẫn ấn enter để Let’s Encrypt tạo key.

Khi tạo xong bạn sẽ nhận được thông báo như sau:

Screen Shot 2016-06-05 at 10.56.06 AM copy

Chứng chỉ của bạn đã được tạo trong thư mục /etc/letsencrypt/archive/nemeanthemes.com và /ect/etc/letsencrypt/live/nemeanthemes.com. Bạn lấy cái nào xài cũng được. Giờ thử list xem bên trong có những file gì:

sudo list /private/etc/letsencrypt/archive/nemeanthemes.com

Screen Shot 2016-06-05 at 11.03.38 AM

Ý nghĩa các file như sau :

  • privkey.pem : Khóa bí mật, bạn không được cung cấp cho bất cứ người nào khác. Bạn sẽ upload file này lên cho server để làm khóa mã hóa/giải mã.
  • cert.pem : Chứng chỉ SSL,  Nếu bạn sử dụng Apache < 2.4.8 bạn sẽ cần file này.
  • chain.pem : Chứng chỉ của Let’s Encrypt, Nếu bạn sử dụng Apache < 2.4.8 bạn sẽ cần file này.
  • fullchain.pem : Chứa tất cả các chứng chỉ, bao gồm cả Let’s Encrypt và cert.pem, Apache >= 2.4.8 cần file này.

Các file này được đặt trong vùng của sudo, bạn cần chuyển quền qua sudo để copy nó ra ngoài hoặc dùng lệnh sudo để copy:

sudo cp -av /private/etc/letsencrypt/archive/nemeanthemes.com /Users/duoc/Desktop

Screen Shot 2016-06-05 at 11.15.24 AM

Giờ bạn đã có key, chỉ cần đăng nhập vào host và add key này vào domain của bạn. Tùy theo dịch vụ host mà bạn đang sử dụng là gì, phần mềm quản lý host của bạn là gì mà sẽ có những cách add khác nhau. Tới bước này, nếu bạn không biết làm, thì có thể google với từ khóa “Cách add ssl cert cho a2hosting” hoặc “a2hosting how to add ssl cert”, Bạn thay a2hosting bằng tên nhà cung cấp dịch vụ của bạn.

Bước 3: Add chứng chỉ vào host

Mình sử dụng cpanel vì vậy sẽ làm như sau:

Tại dashboard, click vào SSL/TLS Manager. Click vào “Private Keys (KEY)” để upload key.

Screen Shot 2016-06-05 at 11.21.09 AM

Giờ quay lại SSL Manager và click vào “Certificates” để upload chứng chỉ:

Screen Shot 2016-06-05 at 11.22.50 AM

Quay lại SSL Manager, click vào Manage SSL sites để install chứng chỉ cho domain, đây là bước cuối cùng:

Screen Shot 2016-06-05 at 11.24.53 AM

Tại select box domain, bạn chọn domain nemeanthemes.com và rồi click vào button “auto fill by Domain”. Các field phía dưới sẽ tự động được điền đầy đủ. Kéo xuống cuối page, click vào “Install Certificate” thì bạn đã có thể truy cập vào https://nemeanthemes.com.

Renew

Bởi vì key chỉ có giá trị trong 3 tháng, vì vậy khi key gần hết hạn, bạn sẽ phải renew key ở local và upload lại lên host. Renew thì đơn giản hơn, chỉ cần chạy :

./letsencrypt-auto certonly --renew-by-default --email nguyenvanduocit@gmail.com -a manual -d nemeanthemes.com --agree-tos

Và upload lại lên host.

Lời kết

Chúng mừng bạn, bạn đã có chứng chỉ miễn phí trong 3 tháng. Nếu website có dữ liệu quan trọng, thì chứng chỉ này sẽ rất có ích, Nếu website không có gì quan trọng, thì ssl có thể sẽ giúp google đánh giá website cao hơn một chút.

Khi có điều kiện, ta có thể cài Let’s Encrypt lên server để việc tạo chứng chỉ này diễn ra tự động, tự renew…