使用 Let’s Encrypt Wildcard 萬用字元憑證
2018/01 後, Let’s Encrypt 推出 ACME v2 API 可以支援 Wildcard Certificates
使用 Wildcard Certificates 可以用一個憑證保護 base domain 下的數個 subdomain
在 Examples for DNS 01 hooks 這些別人包好的 script 裡面找到對應你使用的 DNS 服務
筆者使用 godaddy 所以用的是 le-godaddy-dns 這套
vps 環境: Ubuntu 16.04
安裝步驟:
- 安裝 python 的 dependencies - $ sudo apt-get install python3 python3-pip curl
- 設定 workplace - $ ROOTDIR=$HOME/letsencrypt $ mkdir -p $ROOTDIR $ cd $ROOTDIR
- 安裝所需 plugin - # get letsencrypt.sh $ git clone https://github.com/lukas2511/dehydrated # get le-godaddy-dns $ git clone https://github.com/josteink/le-godaddy-dns $ cd $ROOTDIR/le-godaddy-dns $ python3 -m pip install -r requirements.txt --user
- 設定 dehydrated 的 domain.txt - # configure dehydrated $ cd $ROOTDIR/dehydrated $ vim domains.txt 在裡面填入需要設定的 domain, 可參考 https://github.com/lukas2511/dehydrated/blob/master/docs/domains_txt.md 筆者的需求使用是 dd3.today *.dd3.today
- 設定 dehydrated 的 config - $ vim $ROOTDIR/dehydrated/config 找到這行並改成 yes, 沒有的話自行手動加入 HOOK_CHAIN="yes"
- 設定 key、secret 並執行 - # configure your API keys export GD_KEY=填入 API KEY export GD_SECRET=填入 API SECRET # ./dehydrated --challenge dns-01 -k $ROOTDIR/le-godaddy-dns/godaddy.py -c- 最後成功的樣子  
- 設定自動更新憑證 - 在 - /etc/cron.weekly/下新增一個檔案, 檔案權限記得要開成 755- $ cd /etc/cron.weekly/ $ touch update-dd3-dehydrated $ chmod 755 update-dd3-dehydrated $ vim update-dd3-dehydrated- 檔案內容如下 ( - /root/letsencrypt/dehydrated/dehydrated跟- root/letsencrypt/le-godaddy-dns/godaddy.py要改成你自己安裝的路徑)- #!/bin/bash export PATH=/usr/sbin:/usr/bin:/bin:"${PATH}" sleep $(expr $(printf "\%d" "0x$(hostname | md5sum | cut -c 1-8)") \% 86400); ( /root/letsencrypt/dehydrated/dehydrated --challenge dns-01 -k /root/letsencrypt/le-godaddy-dns/godaddy.py -c; service nginx reload ) > /tmp/dehydrated-dd3.today.log 2>&1- godaddy 的 key 放在 - /etc/environment下- $ vim etc/environment export GD_KEY=填入 API KEY export GD_SECRET=填入 API SECRET
 
 
 
