Làm thế nào để tạo chứng chỉ SSL miễn phí với Let's Encrypt?

 03/10/2019 07:23:00 Trịnh Duy Thanh

Hiện nay thì những dịch vụ hosting đều sẽ hỗ trợ các chứng chỉ SSL miễn phí từ những tổ chức phi lợi nhuận SSL Let’s Encrypt nên các bạn cũng có thể tận dụng để giúp website của mình trở nên chuyên nghiệp và tạo được sự tin tưởng từ người dùng hơn. Còn nếu hosting của bạn chưa được hỗ trợ các tính năng cài đặt chứng chỉ SSL miễn phí từ Let’s Encrypt thì nó cũng không sao cả đâu, mình sẽ có cách hướng dẫn cài đặt thủ công ở trang sau nhé.

SSL let’s encrypt là gì?

SSL let’s encrypt là gì?

SSL là gì và Let’s Encrypt là gì?

Chứng chỉ SSL nó là một loại chứng chỉ giúp nó mã hóa các thông tin trên những thiết bị hoặc các ứng dụng có hỗ trợ mã hóa này bằng chứng chỉ SSL.

Chứng chỉ SSL nó sẽ có hai phần gồm những phần Private Key và Public Key, trong đó Public Key nó sẽ được cài ở các ứng dụng đầu cuối mà trình duyệt hay các ứng dụng khác cũng có thể truy cập đọc được, còn Private Key nó sẽ được cài đặt ở các ứng dụng xử lý tiếp nhận dữ liệu.

Mục đích hoạt động của nó giống như chìa khóa để giúp giải mã những dữ liệu gửi đi từ thiết bị đầu cuối cũng đã được mã hóa thông qua Public Key rồi.

Nếu bạn muốn có chứng chỉ SSL thì bạn cũng phải đăng ký với những tổ chức xác thực như Comodo, GeoTrust, Symantec…với những chi phí nhất định, và chứng chỉ SSL nó cũng chia thành 3 loại như DV, OV hay EV còn tùy theo từng loại hình website của các bạn nữa.

Còn Let’s Encrypt nó là một tổ chức xác thực SSL giống như Comodo, GeoTrust, Symantec nhưng cái điểm khác đó là họ là tổ chức phi lợi nhuận được thành lập với sự bảo trợ của các tổ chức lớn trên thế giới Cisco, Akamai, Mozilla, Facebook…

Do đó, những chứng chỉ SSL Let’s Encrypt nó sẽ không khác gì với những loại chứng chỉ SSL khác mà nó chỉ khác ở chỗ bạn phải gia hạn mỗi 90 ngày một lần. 

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

Đa phần các trang web hiện nay đều được hỗ trợ việc sử dụng SSL (Secure Socket Layer). Chứng chỉ này mã hóa dữ liệu truyền đi từ máy chủ web đến trình duyệt của người dùng để tăng tính bảo mật cho website của bạn. Bởi vậy, rất nhiều cá nhân và doanh nghiệp đã tin tưởng sử dụng chứng chỉ SSL với Let's Encrypt cho website của mình. 

Chứng chỉ SSL có vai trò xác minh độ tin cậy của website của bạn với người sử dụng. Tuy nhiên, trước khi khởi tạo chứng chỉ SSL bạn cũng nên biết Certificate Authority là gì và có vai trò gì nhé.

Giả sử như người dùng đang sử dụng một server Ubuntu với tài khoản truy cập có quyền sudo và dùng web server là Nginx.

Các bước tạo SSL Let’s Encrypt đơn giản

Bước 1: Cài đặt gói Let’s Encrypt với phiên bản mới đổi tên là certbot. Ngươi dùng sẽ sử dụng lệnh certbot thay cho letsencrypt như sau:

sudo apt-get update
sudo apt-get install letsencrypt

Bước 2: Tạo chứng chỉ SSL Certificate

Để người dùng có thể truy cập vào thư mục ẩn (.well-known) vào block server của file cấu hình website (thông thường chúng sẽ nằm trong /etc/nginx/sites-enabled hoặc /etc/nginx/conf.d) phục vụ cho việc xác thực, hãy bổ sung thêm đoạn cấu hình sau:

...
location ~ /.well-known {
allow all;
}
...

Tiếp theo hãy khởi động lại Nginx. Lưu ý sau khi khởi động xong nhớ kiểm tra lại xem website đó còn hoạt động hay không nhé!

sudo systemctl restart nginx

Tạo chứng chỉ SSL certificate bằng cách thay example.com bằng tên miền của chính bạn và /var/www/example.com là đường dẫn tới thư mục gốc của website như sau:

sudo letsencrypt certonly -a webroot --webroot-path=/var/www/example.com -d example.com -d www.example.com

Nếu như quá trình tạo SSL certificate thành công, giao diện sẽ hiện như sau:

IMPORTANT NOTES:
- If you lose your account credentials, you can recover through
e-mails sent to sammy@digitalocean.com
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/example.com/fullchain.pem. Your
cert will expire on 2016-03-15. To obtain a new version of the
certificate in the future, simply run Let's Encrypt again.
...

Bước 3: Cách cấu hình SSL cho website

Để tăng tính bảo mật cho website của bạn, hãy tạo Strong Diffie-Hellman Group (sử dụng cho Nginx) theo câu lệnh:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Sau đó, tạo 1 snippet cho Nginx để có thể tái sử dụng được khi muốn cấu hình cho số lượng lớn website:

sudo nano /etc/nginx/snippets/ssl-params.conf

Nội dung file sẽ được hiển thị như sau:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;

resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;

Chỉnh sửa file cấu hình cho website

Tiến hành tạo redirect 301 cho block server listen 80 (http) nếu như bạn chỉ muốn support https. Lúc đó, người dùng truy cập với giao thức http sẽ tự động chuyển sang https. 

server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}

Tiếp tục tạo thêm 1 block server listen 443 (https):

server {
listen 443 ssl http2;
server_name example.com www.example.com;

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

include snippets/ssl-params.conf;

root /var/www/example.com;

location ~ /.well-known {
allow all;
}

}

Bạn cũng nên lưu ý thay toàn bộ example.com bằng tên miền của mình và đường dẫn root /var/www/example.com tương tự như bước tạo SSL certificate ở trên. Sau khi đã cấu hình xong thì hãy khởi động lại Nginx theo câu lệnh:

 

sudo systemctl restart nginx

Đừng quên truy cập thử website để xem thành quả của mình nhé!

Cách cài đặt được SSL miễn phí lên Shared Hosting dùng cPanel

Bài này mình cũng sẽ chia ra làm 2 phần, tại phần cài tự động với công cụ cũng có sẵn trên host nếu nhà cung cấp có hỗ trợ, và phần cài thủ công với những host không có hỗ trợ tính năng cài tự động nay.

Do vậy mình cũng sẽ chia bài ra làm 3 trang, những bạn vui lòng nhấn vào liên kết trang phía dưới để chuyển sang nội dung cần xem nhé.

Trước khi các bạn làm được việc này, tên miền của các bạn cũng phải được trỏ trực tiếp về hosting mà không cần thông qua bất kỳ proxy nào (như CloudFlare chẳng hạn), và tốt hơn hết bạn nên trỏ về hosting thông qua nameserver của nhà cung cấp đó nhé.

Cài tự động

Nếu hosting của bạn cũng có hỗ trợ tính năng cài SSL miễn phí trên Let’s Encrypt thì các bạn cũng sẽ tìm thấy mục tên là Let’s Encrypt SSL trong các bảng điều khiển cPanel như hình bên dưới.

Chọn tên miền
           Chọn tên miền

Sau đó các bạn chọn tên miền của bạn và chọn Issue.

Và xong là thông báo thành công, nếu mà bạn bị lỗi (hiện thông báo màu đỏ) thì các bạn nhìn kỹ xem có lỗi gì nhé, thường hay gặp nhất là lỗi mà tên miền cần cài SSL chưa trỏ về hosting hoặc nếu các bạn đã trỏ rồi thì vào File Manager đổi tên tập tin .htaccess thành .htaccess_bak và thử lại.

Sau khi các bạn cài thành công thì nên đổi tên lại thành .htaccess.

Thông báo cài đặt chứng chỉ SSL từ Let’s Encrypt trên host thành công.

Thông báo cài đặt chứng chỉ SSL từ Let’s Encrypt trên host thành công.

Và bây giờ các bạn cũng có thể truy cập vào đường dẫn là https://tên-miền-của-bạn.com để thử giao thức https đã hoạt động được chưa nhé.

Nếu các bạn đã có website sẵn rồi thì trên hosting rồi thì các bạn chỉ cần cài plugin Really Simple SSL vào là website nó sẽ tự đổi sang giao thức HTTPS ngay nhé.

Gia hạn chứng chỉ Let’s Encrypt

Với những hosting có những hỗ trợ sẵn như Let’s Encrypt thì hệ thống cũng sẽ tự động gia hạn cho các bạn và mỗi lần gia hạn như vậy thì sẽ có email thông báo tới.

Openssl được ứng dụng rộng rãi trong các máy chủ web Internet nhằm phục vụ đa số các website bởi đây là ứng dụng giúp phòng chống nghe trộm. Vậy openssl là gì bạn đã biết chưa?

Trường hợp mà các bạn nhận được email thông báo gia hạn bị thất bại thì các nguyên nhân chủ yếu đó là do xung đột từ tập tin .htaccess, do vậy các bạn cũng chỉ cần vào File Manager và đổi tên thư mục .htaccess thành .htaccess_bak và các bạn vào lại phần Let’s Encrypt SSL, chọn Reissue là hoàn tất xong.

Các bạn lưu ý, tại tập tin .htaccess ở đây là tập tin .htaccess nó nằm ở thư mục public_html. Nếu các bạn không thấy tập tin .htaccess nữa thì vào File Manager => Settings (phía tay phải) và chọn Show hidden files là thấy được nhé.

Cài thủ công

Nếu mà hosting của bạn không được hỗ trợ cài đặt tự động như mình đã hướng dẫn ở trang trước thì cũng có thể làm thủ công theo các bước dưới đây nhé.

Và để làm được như theo hướng dẫn này thì các bạn cũng cần có một tài khoản FTP chính của gói hosting (thường thì là thông tin giống thông tin đăng nhập vào hosting đó).

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

Đầu tiên thì các bạn truy cập vào https://www.sslforfree.com/ và sau đó nhập tên miền của các bạn vào sau đó ấn nút Create Free SSL Certificate nhé.

Ghi chú: nếu mà các bạn cần phải tạo chứng chỉ dùng cho nhiều subdomain thì bạn nên điền nhiều tên miền vào một lúc nhé, ví dụ wpcoban.com, mail.wpcoban.com, abc.wpcoban.com).

Rồi sau đó các bạn chọn Automatic FTP Verification.

Tiếp theo các bạn điền thông tin đăng nhập FTP vào, phần Directory các bạn nên nhập tên thư mục gốc của các tên miền cần cài SSL thôi.

Nếu mà tên miền cần cài là addon domain hoặc subdomain thì các bạn cũng phải phải nhập đúng cái đường dẫn của tên miền đó, và các bạn chọn Download Free SSL Certificate để hoàn tất.

Sau khi các bạn nhập thông tin là đúng thì nó sẽ cho các bạn thông tin chứng chỉ SSL như sau:

Thông tin ssl let's encrypt
Thông tin ssl let's encrypt

Các bạn lưu lại đó và quay lại bảng điều khiển cPanel của hosting để làm bước kế tiếp theo nhé.

Bước 2. Cài chứng chỉ SSL vào cPanel

Bây giờ các bạn vào bảng điều khiển cPanel của host và tìm mục SSL/TLS.

Sau đó vào mục Certificates (CRT).

Sau đó ở phần Upload a New Certificate, các bạn cũng phải điền mã chứng chỉ Certificate mà các bạn nhận được ở bước 1 vào, Description điền mô tả gì cũng được. Sau đó chọn Save Certificate nhé.

Sau khi các bạn lưu thành công, các bạn ấn Go Back để có thể quay lại và chọn nút Install ở chứng chỉ mà các bạn vừa cho thêm vào, nhớ để ý cái mục Issuer phải là Let’s Encrypt nhé.

Sau đó ở phần Private Key (KEY), các bạn phải điền mã Private Key mà bạn đã nhận được ở bươc 1 vào, sau đó các bạn ấn nút Install Certificate.

Nếu mà thông tin của bạn nhập là chính xác thì các bạn cũng sẽ nhận được thông báo như sau.

 Cài ssl let's encrypt thành công

Thông báo cài ssl let's encrypt thành công

Bây giờ các bạn cũng có thể truy cập vào website theo giao thức https rồi. Nếu mà các bạn đã có website WordPress sẵn thì cũng chỉ cần cài plugin Really Simple SSL vào là được nhé.

Gia hạn chứng chỉ SSL từ Let’s Encrypt

Nếu mà bạn cài thủ công như các bước trên thì việc các bạn gia hạn bạn cũng phải làm thủ công. Để gia hạn được thì cũng chỉ đơn giản là các bạn làm lại theo các bước như trên và còn cập nhật lại chứng chỉ SSL khác cho website của mình thôi nữa nhé, bạn vào mục SSL/TLS => Manage SSL sites.

Sau đó các bạn chọn Update Certificate và điên thông tin chứng chỉ mới vào đó là xong.

Ở bài viết này chúng tôi đã hướng dẫn cho các bạn các bước cài SSL Let’s encrypt lên hosting nhanh chóng nhất. Chúc các bạn thành công. Ngoài ra, nếu muốn ssl giá rẻ hãy liên hệ với BKHost.vn để được mua với giá ưu đãi nhất nhé!

Tôi là Trịnh Duy Thanh, hiện đang là CEO & Co - Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình chủ động đầu tư vào phần cứng và nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp với mọi quy mô.