Windows TLS 证书:win-acme、IIS 绑定与续期
用 win-acme 申请证书、绑定 IIS、为 Nginx 导出 PEM,并在旧证书过期前证明续期真的可用。
测试环境Standard / Datacenter · 版本号 26100.33650 · x64
E1- 版本号
- 26100.33650
- 版本
- Standard / Datacenter
- 架构
- x64
- 支持
- 文档(E1)
- 证据
- E1官方文档
- 核验日期
- 2026-10-29
- 页面类型
- 任务
Windows/IIS 上,win-acme 是实用的 ACME 客户端:
- 申请/续期证书。
- 装进 Windows 证书存储。
- 绑定 IIS 站点。
- 计划续期。
- 在过期之前测续期。
Nginx 要导出 PEM(fullchain.pem + privkey.pem),续期后 reload。
安装 win-acme
Section titled “安装 win-acme”下载 x64 zip,解压到 C:\win-acme,管理员运行 wacs.exe。第一次用交互菜单最稳:
- N 新证书;
- 手动输入或选 IIS 站点;
- 选站点/主机名;
- HTTP-01(80)或 DNS-01(通配/内网);
- 存储:Windows store / PEM;
- 安装到 IIS;
- 创建续期任务。
CLI 形态(按你版本的 wacs --help 核对):
C:\win-acme\wacs.exe --target iis --host lab.example ` --installation iis --store certificatestore不要从旧博客直接粘 CLI 参数而不核对当前版本。
绑定 IIS
Section titled “绑定 IIS”win-acme 装到 IIS 时会创建/更新 HTTPS 绑定。验证:
Get-WebBinding -Name 'Lab' -Protocol httpsnetsh http show sslcert hostnameport=lab.example:443SNI 用 hostname:port 绑定并保持 SslFlags 1。只绑 IP 无法在同一 IP 上服务多张证书。
为 Nginx 导出 PEM
Section titled “为 Nginx 导出 PEM”Nginx 不读 Windows 存储。导出:
- 证书 + 中间证书为
fullchain.pem; - 私钥为
privkey.pem; - 私钥 ACL 只给服务账户 + Administrators。
然后:
ssl_certificate C:/nginx/certs/fullchain.pem;ssl_certificate_key C:/nginx/certs/privkey.pem;每次续期后 reload(nginx -s reload);只换文件不 reload,旧证书还在内存里。
Get-ChildItem Cert:\LocalMachine\My | Where-Object Subject -like '*lab.example*' | Select-Object Subject,NotAfter,Thumbprint确认续期任务存在且跑过。维护窗口做一次强制 dry run/续期。证书续了但没重新绑定,仍是故障。
速率限制与通配
Section titled “速率限制与通配”- Let’s Encrypt 有速率限制;不要循环失败验证。
- 通配必须 DNS-01;HTTP-01 不能签
*.example.com。 - DNS-01 凭据权限很大;最小权限保存。
- 内网名字拿不到公网证书;用内部 CA 或 Caddy
tls internal(实验)。
E1。实验室 WAC 用自签名证书,没有跑 win-acme;命令是 Server 2025 上待验证的生产路径。