Let's Encrypt Free SSL – win-acme
前言
之前有介绍过用 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. (要 run as admin 哦, 不然有些功能用不到)
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 则没有限制哦).
Cancel Renewal
如果 Domain 已经废弃了,那也要 cancel 掉 renewal,不然会报错
首先,选择 Manage renewals
选择要 cancel 的 domain 编号
选择 cancel
确认 y 就可以了。