在 Windows IIS 上使用 Auto SSL(win-acme)
win-acme(wacs.exe)是 Windows 平台的 ACME 客户端,可自动在 IIS 中创建 HTTPS 绑定并创建续期计划任务。它支持外部账户绑定(EAB),因此可直接用于 Auto SSL。
在哪里获取密钥
- 在个人中心 1host.kz/bill 打开"Auto SSL (Sectigo ACME)"服务(可在 Auto SSL 页面下单)。
- 点击"Configure Now"(配置),在"Single Domains"中填写域名(
www与不带www视为同一域名),通配符填入"Wildcard Domains"。 - 5–30 秒后卡片中显示 ACME account ID、EAB MAC ID、EAB MAC key、Server URL。
命令中:Server URL 为 https://acme.sectigo.com/v2/DV,YOUR_EAB_KID 为 EAB MAC ID,YOUR_EAB_HMAC_KEY 为 EAB MAC key。
需要准备
- 安装了 IIS 角色的 Windows Server,管理员权限,PowerShell。
- IIS 中的站点已为所需名称(
example.kz、www.example.kz)配置 HTTP 绑定。 - 域名指向服务器,80 端口在 Windows 防火墙和网络防火墙中开放。
安装 win-acme
- 从 win-acme.com 下载最新版本(
win-acme.v*.x64.pluggable.zip压缩包)。 - 解压到固定文件夹,例如
C:\win-acme——续期任务将从该处运行,之后请勿移动。 - 以管理员身份打开 PowerShell 并进入该文件夹:
cd C:\win-acme。
为 IIS 站点签发证书
在 IIS 中查看站点 ID(IIS 管理器 → 网站,ID 列),然后执行一条命令:它使用 EAB 密钥注册账户,通过 IIS 验证域名,将证书放入证书存储并创建 HTTPS 绑定:
.\wacs.exe --source iis --siteid 1 --host example.kz,www.example.kz `
--baseuri https://acme.sectigo.com/v2/DV `
--eab-key-identifier YOUR_EAB_KID --eab-key YOUR_EAB_HMAC_KEY `
--emailaddress [email protected] --accepttos
其中:--source iis——从 IIS 绑定中获取名称(并启动无人值守模式),--siteid——站点 ID,--host——要包含的名称(都必须在订阅中),--baseuri——ACME 服务器地址,--eab-key-identifier 和 --eab-key——个人中心的密钥,--accepttos——同意 CA 的条款。不指定 --host 时,win-acme 会使用站点的所有绑定。
账户保存在 %ProgramData%\win-acme\acme.sectigo.com_v2_DV\;此后在该服务器上申请其他证书只需 --baseuri,无需重复密钥。也可以交互式操作:不带参数运行 .\wacs.exe,但需先在命令行传入 --baseuri 和 EAB 密钥——菜单中没有输入它们的地方。
其他服务与通配符
要在每次续期后更新 RDP、Exchange 或 RDS 中的证书,请在签发命令中添加安装脚本:--installation iis,script --script "C:\win-acme\Scripts\ImportRDGateway.ps1" --scriptparameters "{CertThumbprint}"——发行包的 Scripts 文件夹中提供了现成的脚本示例。
*.example.kz 需要 DNS 验证:按 win-acme 文档使用 --validation 指定您的 DNS 服务商插件(例如 cloudflare)及其参数,域名使用 --host example.kz,*.example.kz 并配合 --source manual。如果域名的 DNS 在我们的 ns1/ns2.1host.kz 上,请联系技术支持——我们协助配置。
常见错误
- 80 端口被占用或关闭——http-01 验证失败。确认 IIS 在 80 端口监听(
netstat -ano | findstr :80)且端口在防火墙中开放。 - 域名未指向服务器——
Resolve-DnsName example.kz必须返回该服务器的 IP。 - CA 拒绝订单——域名不在 Auto SSL 订阅中;请在个人中心添加("Add domain")。
- 证书已签发但网站仍使用旧证书——检查 IIS 中站点的 HTTPS 绑定:必须选择新证书(如果绑定是 win-acme 创建的,它会按指纹自动更新)。
检查与续期
通过 HTTPS 打开网站:证书颁发者为 Sectigo。在 PowerShell 中查看 win-acme 证书列表和有效期:
.\wacs.exe --list
Get-ChildItem Cert:\LocalMachine\WebHosting | Format-List Subject,Issuer,NotAfter
续期由 win-acme 首次签发时创建的计划任务"win-acme renew (acme-v02…)"执行;它每天运行,在到期前 55 天更新证书。检查任务是否存在或重新创建:
Get-ScheduledTask | Where-Object TaskName -like "win-acme*"
.\wacs.exe --setuptaskscheduler
手动执行续期:.\wacs.exe --renew --force。日志位于 %ProgramData%\win-acme\…\Log。Auto SSL 订阅每年通过账单续费一次(账单提前 14 天开出);订阅有效期间证书自动更新。配置帮助——通过个人中心联系 ONEHOST 技术支持,全天候服务。