Win-ACME 是在 Windows 服务器上自动化 SSL 证书签发与续期最简单的方式之一。当与 EAB(External Account Binding,外部账户绑定)凭据配合使用时,它可与你的 CA 私有 ACME 端点(如 Sectigo 面向 DV 或 OV 证书的 ACME)实现安全认证。这份逐步指南带你走完整个流程——从安装到在 IIS 上使用 Win-ACME(wacs.exe)实现自动化。
前置条件
开始之前,请确保你具备:
- 已安装 IIS 的 Windows Server;
- 服务器的管理员访问权限;
- 最新的 Win-ACME 客户端(从 https://www.win-acme.com/ 下载);
- EAB 凭据:EAB Key Identifier(ID)与 EAB HMAC Key;
- 自定义 ACME 服务器 URL(由我们提供)。
提示:始终下载 Win-ACME 的默认可插拔版本,而非精简版。精简版缺少 DNS 插件,并会限制你日后可能需要的进阶安装选项。
安装
- 把 Win-ACME 的 ZIP 文件解压到一个目录,例如 C:\win-acme;
- 以管理员身份打开命令提示符;
- 进入解压后的文件夹:cd C:\win-acme。
现在你可以直接在该目录下运行 Win-ACME 命令。
使用 EAB 凭据运行 Win-ACME
与旧版本不同,Win-ACME 不再支持为 EAB 配置启动"advanced"模式。现在所有参数都必须以单行内联方式输入。以下是常用参数及其作用的拆解。
| 参数 / 标识符 | 说明 |
|---|---|
| wacs.exe | 运行 Win-ACME 应用。 |
| --target manual | 允许你使用 EAB 凭据手动运行 Win-ACME。 |
| --host | 定义要包含在证书中的域名。可用逗号分隔添加多个域名,所有域名必须位于同一 EAB 账户下。 |
| --eab-key-identifier | 你的 EAB ID。 |
| --eab-key | 你的 HMAC 密钥。 |
| --baseuri | 你的 ACME 服务器目录 URL。 |
| --installation iis | 指明安装方式为 IIS。 |
| --installationsiteid | 定义 IIS 站点 ID。仅当使用 --installation iis 时有效,不接受多个值。 |
| --sslport | 可选。当你想把证书安装到自定义端口时使用。若省略,IIS 会自动创建或更新 443 端口绑定。 |
| --validationmode | 允许你指定验证方式——dns-01 或 http-01。若未包含,Win-ACME 默认使用文件(HTTP)验证。通配符证书需要 dns-01。 |
| --validation | 若使用 DNS-01 方式,定义 DNS 提供商(如 --validation cloudflare)。 |
| --cloudflareapitoken | 定义 DNS 提供商的 API 令牌。受支持的 DNS 管理器与参数见 https://www.win-acme.com/reference/plugins/validation/dns/ ;下载 DNS 插件见 https://github.com/simple-acme/simple-acme/releases/ 。把文件夹解压到 C:\win-acme 即可启用 DNS 验证。 |
证书类型
取决于你签发的是单域名/多域名证书还是通配符,命令会略有不同。
单域名或多域名证书(非通配符)
若你的域名是公开且可通过 80 端口访问的,使用 HTTP 验证(基于文件)。
wacs.exe --target manual --host example.com,www.example.com --eab-key-identifier *EAB ID* --eab-key *HMAC Key* --baseuri https://acme.sectigo.com/v2/DV --installation iis --installationsiteid *site id*
该命令:
- 认证你的 EAB 凭据;
- 为 example.com 和 www.example.com 签发证书;
- 自动安装到 IIS;
- 自动创建或更新 443 端口绑定。
通配符证书
推荐做法是使用 DNS 插件自动化该过程,让 Win-ACME 在证书签发和续期期间自动创建和移除 TXT 记录。要使用此方法,从官方 Win-ACME 或 Simple-ACME 仓库下载你 DNS 提供商的插件,解压到 C:\win-acme 文件夹,然后运行以下命令:
wacs.exe --target manual --host example.com,www.example.com --eab-key-identifier *EAB ID* --eab-key *HMAC Key* --baseuri https://acme.sectigo.com/v2/DV --installation iis --installationsiteid *site id* --validationmode dns-01 --validation cloudflare --cloudflareapitoken **token**
该命令:
- 通过 Cloudflare 的 API 使用 DNS 验证;
- 为 ACME 挑战自动创建 TXT 记录;
- 把签发的证书直接安装到 IIS。
自动化
证书签发后,Win-ACME 会悄然接管续期。你不必每隔几个月重新登录或重跑命令,它已为你排期。
- 自动续期:默认情况下,Win-ACME 设置一个在证书到期前 55 天运行的续期任务;
- 设置位置:若需更改检查频率,可在 C:\win-acme\settings.json 中找到设置;
- 对 DNS 用户:当你使用带插件的 DNS-01 验证时,工具会在每次续期期间自行添加和移除 TXT 记录;
- 结果:一旦就位,一切都自行运转——续期、绑定和 DNS 更新都不再需要你触碰服务器。
故障排查
如果看起来不对——也许证书没安装、没续期,或在 IIS 中没出现。通常只是几个简单原因之一。
- 站点 ID 不匹配:仔细核对你在 --installationsiteid 中使用的数字,它必须与 IIS 管理器中的一致;
- 同一 EAB 下的域名:用 --host 列出的所有域名必须属于同一 EAB 账户,混用会导致验证失败;
- 强制重新运行:如果 Win-ACME 一直拉取旧证书或缓存的订单,添加 --nocache 强制发起新请求;
- 命令格式:命令必须单行输入,每个参数之间一个空格。不要中途按回车——断点之后的内容不会执行;
- 调度器缺失:如果在 Windows 任务计划程序中看不到续期任务,以管理员身份再次运行同一命令即可,通常能正确注册。
结语
IIS 上的 SSL 管理过去意味着手动创建 CSR、导入以及续期提醒。借助 Win-ACME 与 EAB,你如今能实现媲美 Linux 环境的自动化水平。无论是签发简单的单域名证书,还是在多个子域间管理通配符 SSL,Win-ACME 都能确保你的证书保持最新。IIS 也始终处于配置状态,过期证书导致的停机成为过去。最棒的是,一旦配置好,几乎不需要维护——你不必每 90 天登录去修复 TXT 记录或替换证书,它在后台默默运行。对于已经 juggle 一长串 IT 职责的团队来说,这真是省时利器。
通过 Win-ACME 在 IIS 上实现 Sectigo SSL 自动化
用 ACME 自动化保护你的 IIS 网站:快速部署、免维护续期、企业级可靠性。如需获取 ACME SSL 证书,请通过正规渠道申请。
相关文章:
- 什么是 ACME 协议及其工作原理:完整指南
- ACME 如何变革现代企业的 SSL 自动化
- 如何使用 Certbot 在 Apache 与 Nginx 上安装 ACME SSL 证书
- 如何使用 Certbot 在 cPanel/WHM 上安装 Sectigo ACME SSL 证书
- 什么是 8080 端口及其与 80 和 443 端口的区别