Windows服务器自动化SSL证书管理:win-acme与Let‘s Encrypt实战指南

张开发
2026/4/13 15:34:31 15 分钟阅读

分享文章

Windows服务器自动化SSL证书管理:win-acme与Let‘s Encrypt实战指南
1. 为什么需要自动化SSL证书管理如果你管理过Windows服务器上的网站肯定遇到过SSL证书到期忘记续期的尴尬。凌晨三点被报警短信吵醒发现网站因为证书过期打不开了这种经历我遇到过不止一次。手动管理证书不仅耗时费力还容易出错这就是为什么我们需要自动化工具。win-acme这款神器完美解决了这个问题。它专为Windows环境设计支持Lets Encrypt免费证书的自动申请、部署和续期。我去年在20多台服务器上部署后再也没为证书问题熬过夜。相比其他ACME客户端它有三大优势原生支持IIS点几下鼠标就能完成配置内置任务计划功能自动处理续期提供可视化界面和命令行两种操作方式2. 环境准备与工具安装2.1 系统要求实测在Windows Server 2012 R2及以上版本都能稳定运行。需要提前确保服务器能访问外网用于验证域名和获取证书已安装.NET Framework 4.7.2或更高版本如果使用IIS需要确保已启用Web服务器角色2.2 下载安装最新版下载地址v2.2.9.1https://github.com/win-acme/win-acme/releases/download/v2.2.9.1/win-acme.v2.2.9.1.zip解压后目录结构如下win-acme/ ├── wacs.exe # 主程序 ├── scripts/ # 示例脚本 └── settings.json # 配置文件建议将解压目录设为系统PATH变量这样在任何路径都能直接运行wacs命令。我习惯放在C:\Program Files\win-acme方便统一管理。3. 申请第一个SSL证书3.1 基础配置双击运行wacs.exe会看到蓝色控制台界面。首次运行时建议选择[M] Create certificate (full options)这样能解锁所有高级功能。接下来关键步骤域名输入支持通配符证书如*.example.com但需要DNS验证验证方式HTTP验证适合有公网IP的服务器DNS验证适合内网或需要通配符证书的场景证书存储推荐选择IIS Central Certificate Store方便多站点管理3.2 DNS验证实战以腾讯云DNSPod为例需要准备API ID和Token在DNSPod控制台获取自定义PowerShell脚本win-acme支持各种DNS提供商示例脚本片段param( [string]$RecordName, [string]$TxtValue, [string]$DNSPodKeyIdYOUR_ID, [string]$DNSPodKeyTokenYOUR_TOKEN ) # 添加TXT记录 $addQuery { Uri https://dnsapi.cn/Record.Create Method POST Body domain_id$zoneIdsub_domain$recShortrecord_typeTXTvalue$TxtValuelogin_token$authToken }注意脚本需要放在win-acme的scripts目录下运行时选择对应脚本路径即可4. 高级配置技巧4.1 证书自动部署win-acme支持多种部署方式IIS站点绑定自动更新指定站点的绑定文件导出生成PFX/PEM格式证书远程服务器通过SSH/SMB同步到其他服务器配置示例导出为PFX[2] Export certificate to folder Path: C:\SSL_Certs\ Password: (可选)4.2 自动续期原理程序会创建Windows计划任务默认在证书到期前30天触发续期。可以通过以下命令查看任务schtasks /query /tn win-acme renew续期过程完全自动化包括申请新证书验证域名所有权替换旧证书重启相关服务如IIS5. 常见问题排查5.1 验证失败处理如果遇到验证失败建议检查防火墙是否放行80/443端口确认DNS解析已生效可用dig/nslookup测试查看日志文件%programdata%\win-acme\logs5.2 证书不更新我遇到过计划任务未触发的情况解决方法# 手动运行续期测试 wacs.exe --renew --baseuri https://acme-v02.api.letsencrypt.org/如果使用通配符证书记得定期检查DNS API密钥是否有效。有一次因为API密钥过期导致续期失败现在我会在密码管理器中设置提醒。6. 安全最佳实践权限控制运行账户使用最小权限原则证书私钥设置访问限制icacls C:\SSL_Certs\*.pfx /grant NETWORK SERVICE:R监控告警配置证书过期监控推荐使用PrometheusAlertmanager设置续期失败邮件通知备份策略定期备份%programdata%\win-acme目录导出证书时启用密码保护这套方案在我负责的电商平台上运行了两年多期间经历了三次大版本升级始终保持零故障。对于需要管理多个域名的场景还可以通过批处理脚本批量操作大幅提升效率。

更多文章