前言
之前有介紹過用 Certify The Web 來做 Let's Encrypt SSL, 但是最近常看到它的 License 提示, 有種隨時隨地要收費的感覺
於是找了一個替代品 win-acme. 這篇就來聊聊它.
Why win-acme
Certify The Web 是一款 UI 工具, win-acme 則是 command tools 沒有了 UI.
再衆多替代品中, 選中 win-acme 是因爲它 github star 比較多
github star
Let's Encrypt Rate Limit & Staging Mode
在做測試時要用 staging 不然會遇到 rate limit 問題.
參考: Rate Limits
win-acme 開啓 staging mode
通過 cmd 方式打開 folder 然後運行 wacs.exe 加 paramater 就可以了. 最好是 run as administrator.
win-acme 開啓 force mode, 因爲在 valid DNS TXT 時會有 cache, 如果你想測試 DNS TXT 的話, --force 可以 clear cache.
wacs.exe --force --test --verbose
Installation
到官網下載軟件
它是 zip file, unzip 之後雙擊運行 wacs.exe.
Normal SSL
有幾個選項
如果只做一個普通網站 SSL (not wildcard) 的話, 使用第一個 N 就可以了. 全部走 default 路線.
它會從 IIS 裏選出網站, 然後自動 binding.
做完之後會發現, Manage renewals 變成了 (1 total), 表示有一個 SSL 了,
Wildcard SSL
Manual DNS
Wildcard SSL 就是那種 *.jbreviews.com.my 可以用於所以 sub domain 的 certificate.
它和普通申請過程的區別是它無法用 http-01 的方式去做 validation, 只能通過 dns-01.
所以我上一篇纔會去弄 Azure DNS, 因爲它需要 API 訪問.這樣才能完全自動化 renew.
but, 我們先來一個 manual update DNS TXT record 申請一次, 下一個 part 才搞 DNS API.
一開始選 M, 不用 default, 自己控制
繼續選 2 manual input, 還是自己控制
輸入 sub domain 和 main domain 一起, 這樣 certificate 就通用了 (注: Certity The Web wildcard 申請的流程也是一樣的哦)
爲 certificate 取個 friendly name, 放空便是默認 [Manual] *.jbreviews.com.my
選中 validation 方式, http-01 都是不可選的, wildcard 只能用 dns-01 做驗證.
我們這次選 manual, 之所以沒有看到 Azure DNS 是因爲它是一個 plugin 需要另外安裝. 下一 part 纔講.
接下來就跟着默認選就可以了
選項 4 選
到這裏就會拿到 TXT validation value 了.
DNS set TXT record
有時候會翻車
我也不清楚原因, 之前用 Certify The Web 做 wildcard 也有翻車經驗. 有時要驗證好幾次才能成功. 反正就 abort + retry 幾次就可以了.
這個 DNS lookup tool 可以檢查是否成功讀取到 TXT
測試版到這裏就算完成了啦, 不需要在安裝下去了, production 版本它會幫你 binding 好, MMC Machine Store 裏就可以看到 certificate 了.
Azure DNS
參考: Create the record in Azure DNS
爲了讓 wildcard 可以 auto renew, 需要 DNS 運行 API 操作, 普通 hosting company 通常是沒有提供的, 所以這裏用 Azure 來做 DNS.
去 github下載
它也是一個 zip file, unzip win-acme 的 folder 裏.
運行 wacs.exe, 會發現多了一個 Azure DNS 選項.
如何 create Azure DNS 看這篇, 如何授權看這篇.
下面是需要的 configuration.
對應的資料在 Azure 的這裏
和這裏
接着順着下去.
也是可能會翻車, 但讓它自己 retry 就可以了. 耐心等 2-3 次.
Secret 會保存在 vault 裏, 可以在 options 裏面找到.
Schedule Renew
它默認就已經 create 好 schedule 了. 我估計是需要打開着 它纔會執行啦.
Manage renewals 和 More options 可以查看細節.
我的都還沒有過期, 不好做測試, 但相信是很智能的啦, 到這裏就算功能齊全了. 即使 Certify The Web 收費也不怕了 (它不收費最多也只能 auto renew 10 個 certificate, win-acme 則沒有限制哦).