2016 年自己寫過 改用 Let’s Encrypt 的 certificates,文內提到的 dehydrated 也持續在使用。
這幾天看到 Let’s Encrypt 貼出 ACME v2 and Wildcard Certificate Support is Live。
Let’s Encrypt 的 wildcard certificate 實作大概要注意以下幾點:
- 要用 ACME v2 compatible client(官方有提供列表: ACME Client Implementations)
- 不能用 HTTP challenge,改用 DNS challenge
使用 dehydrated 進行 DNS challenge 可以參考這幾份文件:
我選擇用 nsupdate 的方式(參考 dehydrated Wiki : example dns 01 nsupdate script),在 DNS master server 建立 _acme-challenge.{DOMAIN} 的 NS record,讓 hook script 透過 nsupdate 連線到指定的 name server 更新 TXT record 。
DNS 方面完成後,要記得佈署 hook script 與 nsupdate 使用的 key。
接著是調整語法,原本的語法:
/SOMEWHERE/dehydrated/dehydrated -c -d {網站hostname}
改為:
/SOMEWHERE/dehydrated/dehydrated \ -c -d *.{DOMAIN} \ -t dns-01 -k {HOOK_SCRIPT} \ --alias wildcard.{DOMAIN}
( –alias 指定的 wildcard.{DOMAIN} 會成為目錄名稱,用來存放憑證 )