Hướng dẫn Cài đặt Let’s Encrypt SSL miễn phí trên VPS/Server

Năm 2019, Let’s Encrypt đã cung cấp chứng chỉ Wildcard SSL . Sau nhiều lần trì hoãn thì cuối cùng ngày hôm nay, chúng ta đã có thể đăng ký kích hoạt chứng chỉ này hoàn toàn miễn phí.

Đây là một cột mốc quan trọng giúp tiến dần hơn tới mục tiêu biến HTTPS thành giao thức được sử dụng 100% trên Internet. Trước đây, Let’s Encrypt chỉ phát hành chứng chỉ Domain Validation SSL – chứng thực cho Domain Name.

Cụ thể, Let’s Encrypt Wildcard SSL là chứng chỉ SSL có thể dùng cho tất cả các subdomain của tên miền có dạng *.domain.com. Bạn chỉ cần kích hoạt một lần là toàn bộ subdomain về sau có thể cài đặt sử dụng chứng chỉ ngay được. Wildcard SSL lý tưởng cho việc sử dụng nhiều tên miền phụ như WordPress Multisite (dạng subdomain), gian hàng online…

Quy trình cài đặt chứng chỉ Wildcard SSL hơi khác so với cài đặt Let’s Encrypt thông thường, ngoài ra không phải ai cũng có nhu cầu sử dụng Wildcard nên VNT(vntechnews) sẽ viết một bài hướng dẫn riêng. Wildcard SSL cũng có giới hạn thời gian sử dụng 3 tháng nên bạn cần cấu hình certbot tự động gia hạn sử dụng crontab.

Nếu cài xong mà thanh địa chỉ chưa hiện HTTPS màu xanh, hãy tham khảo bài Hướng dẫn cài đặt SSL “xanh hoàn hảo”

Nếu không nắm vững kiến thức kỹ thuật, hãy liên hệ sử dụng Dịch vụ Cài đặt SSL từ Vntechnews.com.

1. Chuẩn bị hệ thống

– Cài đặt Let’s Encrypt (bỏ qua nếu đã thực hiện)

# yum -y install git && git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt

– Wildcard SSL yêu cầu Cerbot phiên bản 0.22.0 trở lên. Việc kiểm tra phiên bản sẽ tự động cập nhật Certbot lên bản mới nhất.

# cd /opt/letsencrypt 
# ./certbot-auto --version
Upgrading certbot-auto 0.21.1 to 0.22.2...
Replacing certbot-auto...
certbot 0.22.2

2. Kích hoạt chứng chỉ Let’s Encrypt Wildcard SSL

Wildcard SSL chỉ dành cho các subdomain dạng *.domain.com, không thể bảo mật cho domain.com. Vì vậy, nếu cần dùng bạn nên kích hoạt đồng thời domain SSL và Wildcard SSL trong 1 chứng chỉ.

Ví dụ trong bài mình sẽ hướng dẫn phát hành chứng chỉ cho cả domain vntechnews.com và toàn bộ các subdomain *.vntechnews.com.

# cd /opt/letsencrypt
# ./certbot-auto certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d vntechnews.com -d *.vntechnews.com

Let’s Encrypt sẽ cài đặt những công cụ cần thiết. Sau đó, bạn hãy nhập địa chỉ mail, đồng ý với các quy định.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): admin@gmail.com
-------------------------------------------------------------------------------

Nhập địa chỉ email sử dụng để gửi thông báo.

Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A
-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: N

Chấp nhận quy định nhấn A và đồng ý nhận tin tức qua email, Y/N đều được.

Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for vntechnews.com
dns-01 challenge for vntechnews.com
-------------------------------------------------------------------------------
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.
Are you OK with your IP being logged?
-------------------------------------------------------------------------------
(Y)es/(N)o: Y
-------------------------------------------------------------------------------

Đồng ý chia sẻ thông tin IP Log (phải đồng ý)

Please deploy a DNS TXT record under the name
_acme-challenge.vntechnews.com with the following value:
5am86r64Bbx0cd1rCT2NapwNGsVLQkInx73WgM4vp-w
Before continuing, verify the record is deployed.
-------------------------------------------------------------------------------
Press Enter to Continue
-------------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.vntechnews.com with the following value:
dWY-f4K22BSI1DEOqnfJ-v0TXPgcaXLhsKx7lAgRLNs
Before continuing, verify the record is deployed.
-------------------------------------------------------------------------------
Press Enter to Continue

Đây là bước quan trọng nhất, xác thực quyền sở hữu domain bằng cách tạo 2 record TXT với nội dung hiển thị trên màn hình. Xong nhấn Enter.

Chú ý:

  • Value1 hiện ra bạn cập nhật trên DNS Domain rồi Enter và tiếp tục với Value2.
  • Nhiều DNS Server update record rất chậm, mất vài giờ hoặc một vài ngày mới nhận record TXT. Để kiểm tra domain đã update record chưa, các bạn có thể dùng tool DNS Text Lookup. Nếu record chưa được update, quá trình kích hoạt sẽ Fail.
  • Giá trị của TXT Record có thể thay đổi/không đổi qua các lần kích hoạt. Nếu kích hoạt fail, bạn cứ giữ nguyên nội dung TXT Record để dùng vào lần kích hoạt ngay sau đó (value có thể chưa đổi).

Nếu không có vấn đề gì xảy ra, bạn xe nhận được thông báo chúc mừng Congratulations! như bên dưới:

Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/vntechnews.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/vntechnews.com/privkey.pem
   Your cert will expire on 2018-06-16. To obtain a new or tweaked
   version of this certificate in the future, simply run
   certbot-auto again. To non-interactively renew *all* of your
   certificates, run "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Kiểm tra lại nội dung chứng chỉ

# ./certbot-auto certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
-------------------------------------------------------------------------------
Found the following certs:
Certificate Name: vntechnews.com
    Domains: vntechnews.com *.vntechnews.com
    Expiry Date: 2018-06-16 14:51:20+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/vntechnews.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/vntechnews.com/privkey.pem
-------------------------------------------------------------------------------

Như vậy, bạn đã phát hành thành công chứng chỉ Let’s Encrypt – bao gồm cả DV SSL và Wildcard SSL. Bước tiếp theo, hãy cài đặt trên Webserver như Hướng dẫn cài đặt chứng chỉ bảo mật Let’s Encrypt (phần 2/ Cấu hình Nginx) và cấu hình tự động gia hạn với crontab (phần 4/ Tự động gia hạn Let’s Encrypt). Đồng thời tham khảo Cấu hình Webserver cho SSL của WP Multisite

3. Một số vấn đề gặp phải

– Tùy theo nhu cầu sử dụng, có thể phát hành đồng thời/riêng lẻ các chứng chỉ của một domain. Ví dụ vntechnews.com, hoidap.vntechnews.com hay *.vntechnews.com*.hoidap.vntechnews.com.

# ./certbot-auto certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
-------------------------------------------------------------------------------
Found the following certs:
  Certificate Name: vntechnews.com
    Domains: vntechnews.com
    Expiry Date: 2018-06-16 14:51:20+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/vntechnews.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/vntechnews.com/privkey.pem
  Certificate Name: vntechnews.com-0001
    Domains: *.vntechnews.com
    Expiry Date: 2018-06-16 14:54:34+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/vntechnews.com-0001/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/vntechnews.com-0001/privkey.pem
  Certificate Name: hoidap.vntechnews.com
    Domains: hoidap.vntechnews.com
    Expiry Date: 2018-06-16 14:56:41+00:00 (VALID: 89 days)
    Certificate Path: /etc/letsencrypt/live/sub.vntechnews.com/fullchain.pem
    Private Key Path: /etc/letsencrypt/live/sub.vntechnews.com/privkey.pem
-------------------------------------------------------------------------------

– Nếu đã sở hữu chứng chỉ cho domain.com, bạn chỉ cần chạy lệnh như hướng dẫn và chứng chỉ cũ sẽ được cập nhật bổ sung với lựa chọn E(Expand)

-------------------------------------------------------------------------------
You have an existing certificate that contains a portion of the domains you requested (ref:/etc/letsencrypt/renewal/vntechnews.com.conf)
It contains these names: vntechnews.com
You requested these names for the new certificate: vntechnews.com, *.vntechnews.com.
Do you want to expand and replace this existing certificate with the new certificate?
-------------------------------------------------------------------------------
(E)xpand/(C)ancel: E

– Xác thực domain thất bại nếu TXT Record sai, thông báo:

Domain: vntechnews.com
   Type:   unauthorized
   Detail: Incorrect TXT record
   "xxx" (and 1 more) found at _acme-challenge.vntechnews.com

Tùy trường hợp, value của TXT Record _acme-challenge sẽ thay đổi/không đổi qua các lần xác thực domain nên bạn hãy kiểm tra thật cẩn thận TXT Record với tool DNS Text Lookup rồi chạy lại lệnh phát hành.

Leave a Reply

Your email address will not be published. Required fields are marked *