Cài đặt Let’s Encrypt Wildcard SSL miễn phí trên VPS/Server

Đầu năm 2018, Let’s Encrypt thông báo sắp sửa 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 Học VPS 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ừ Học VPS.

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 
 # ./letsencrypt-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 hocvps.com và toàn bộ các subdomain *.hocvps.com.

# cd /opt/letsencrypt
 # ./letsencrypt-auto certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d hocvps.com -d *.hocvps.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): [email protected]
 -------------------------------------------------------------------------------

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 hocvps.com
 dns-01 challenge for hocvps.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.hocvps.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.hocvps.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/hocvps.com/fullchain.pem
    Your key file has been saved at:
    /etc/letsencrypt/live/hocvps.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
    letsencrypt-auto again. To non-interactively renew *all* of your
    certificates, run "letsencrypt-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ỉ

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

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ụ hocvps.com, hoidap.hocvps.com hay *.hocvps.com*.hoidap.hocvps.com.

# ./letsencrypt-auto certificates
 Saving debug log to /var/log/letsencrypt/letsencrypt.log
 -------------------------------------------------------------------------------
 Found the following certs:
   Certificate Name: hocvps.com
     Domains: hocvps.com
     Expiry Date: 2018-06-16 14:51:20+00:00 (VALID: 89 days)
     Certificate Path: /etc/letsencrypt/live/hocvps.com/fullchain.pem
     Private Key Path: /etc/letsencrypt/live/hocvps.com/privkey.pem
   Certificate Name: hocvps.com-0001
     Domains: *.hocvps.com
     Expiry Date: 2018-06-16 14:54:34+00:00 (VALID: 89 days)
     Certificate Path: /etc/letsencrypt/live/hocvps.com-0001/fullchain.pem
     Private Key Path: /etc/letsencrypt/live/hocvps.com-0001/privkey.pem
   Certificate Name: hoidap.hocvps.com
     Domains: hoidap.hocvps.com
     Expiry Date: 2018-06-16 14:56:41+00:00 (VALID: 89 days)
     Certificate Path: /etc/letsencrypt/live/sub.hocvps.com/fullchain.pem
     Private Key Path: /etc/letsencrypt/live/sub.hocvps.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/hocvps.com.conf)
 It contains these names: hocvps.com
 You requested these names for the new certificate: hocvps.com, *.hocvps.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: hocvps.com
    Type:   unauthorized
    Detail: Incorrect TXT record
    "xxx" (and 1 more) found at _acme-challenge.hocvps.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.

(function() (window._fbq = []); if (!_fbq.loaded) _fbq.push([‘addPixelId’, ‘668187989928454’]); )(); window._fbq = window._fbq || []; window._fbq.push([‘track’, ‘PixelInitialized’, ]);

Nguồn: https://hocvps.com/cai-dat-lets-encrypt-wildcard-ssl/

Add Comment