PAIBAOWORK · B2B DIGITAL GROWTHB2B 建站 · WhatsApp 客户沟通 · AI CRM
泓森互联 · 建站大专题 · SSL 证书分册最后核实 2026-10-12 · v1.0

路线 F · Windows IIS

路线 F:Windows IIS + win-acme 教程

网站放在 Windows Server、用 IIS 搭建的,照这一页做:全程点鼠标加一次下载,10~30 分钟让地址栏告别「不安全」,并且以后自动续期。

本文目录 · 13 节
  1. 这条路适合谁
  2. 六步总览(先看结论)
  3. 8.1 准备(打勾再动手)
  4. 8.2 下载与运行 win-acme
  5. 8.3 按菜单操作(全程问答式)
  6. 8.4 验证(四件事都做)
  7. 8.5 开启 HTTP → HTTPS 跳转
  8. 8.6 确认自动续期真的有效
  9. 8.7 通配符证书与 DNS 验证(子域名很多时用)
  10. 8.8 用 PowerShell 核对证书和绑定
  11. 常见失败与排查
  12. 回滚怎么做
  13. 一页速查(可打印)

先说结论

  • IIS 上装证书用 win-acme:免费开源,自动申请 Let's Encrypt、自动绑定 IIS 的 443、自动建计划任务续期,全程问答式点鼠标。
  • 动手前先过 7 项预检:网站能 http 打开、IIS 绑定写了主机名、云安全组与 Windows 防火墙都放行 80/443、域名解析正确。80 端口不通是失败第一原因。
  • win-acme 只发证书不负责跳转:http 到 https 的 301 跳转要装 URL Rewrite 模块再加规则,或交给 Cloudflare 的「始终使用 HTTPS」。
  • Let's Encrypt 已于 2025-06-04 停止发送到期提醒邮件,证书有效期还会从 90 天缩到 64、45 天:必须靠计划任务自动续期,再加一个外部到期监控。

🤖 把这篇交给你的 AI 智能体

复制后粘贴给你常用的 AI 智能体(豆包、ChatGPT、Claude、Codex 等),它会按同样的步骤带你做完,并在每一步改动前先征求你的同意。不要把密码、密钥发到对话里。

⬇ 下载 SKILL.md 📄 Markdown 版 提示词语言:
查看将要复制的提示词
提示词版本 v1.0 · 最后核实 2026-10-12
✅ 已复制!去粘贴给你的智能体吧

这条路适合谁

你的情况能不能走这条路
网站放在 Windows Server 上,用 IIS 搭建✅ 就是这条路
你能用「远程桌面(RDP)」以管理员身份登录这台服务器✅ 就是这条路
服务器是 Windows,但网站其实是宝塔 Windows 版 / 其他面板管的⚠️ 先看面板里有没有 SSL 入口,没有再用本办法
网站放在阿里云/腾讯云的 Windows 云服务器✅ 同样适用(注意云安全组)
网站是 Linux 服务器(Nginx / Apache)❌ 走〔路线 A:Linux + Certbot,规划中〕
网站建在 Shopify / Wix / WordPress.com 等平台❌ 走路线 E:SaaS 建站平台

用时:熟练的人 10 分钟,第一次做留出 30 分钟。难度:★★(全程点鼠标 + 一个下载,不用敲命令)。

这条路的核心:用 win-acme 这个免费开源工具,自动向 Let's Encrypt 申请证书、自动绑定到 IIS、自动创建「计划任务」续期。证书本身免费,不要为「装证书」另外付钱。

win-acme 官网首页(win-acme.com)
真实截图win-acme 官网首页(win-acme.com)

六步总览(先看结论)

步骤做什么成功标志
1 · 准备IIS 网站能用 http:// 打开、绑定写了主机名、80/443 放行浏览器能打开 http://你的域名
2 · 下载下载 win-acme 的 x64 trimmed 版,解压到固定文件夹C:\Program Files\win-acme\wacs.exe 存在
3 · 运行右键「以管理员身份运行」wacs.exe出现蓝色文字主菜单
4 · 申请输入 N → Read bindings from IIS → 选站点显示证书申请成功、绑定已更新
5 · 验证浏览器访问 https://你的域名地址栏显示安全、证书有效
6 · 收尾开 HTTP→HTTPS 跳转、确认续期计划http:// 自动跳到 https://,续期计划可见

8.1 准备(打勾再动手)

这一步全是「只看不改」,放心做。任何一项不合格,先去修,否则第 4 步一定会失败。

#检查项怎么查合格标准不合格怎么办
1网站本身能用 http 打开服务器上打开浏览器,访问 http://你的域名能正常显示网页先把 IIS 站点配好,能访问再谈证书
2IIS 绑定里有主机名IIS 管理器 → 你的站点 → 右侧「绑定」至少有一条 http / 80 / 你的域名(根域名和 www 各一条最稳)点「添加」补上主机名;主机名留空会导致 win-acme 读不到域名
3Windows 防火墙放行 80、443「高级安全 Windows Defender 防火墙」→ 入站规则有允许 TCP 80、443 的规则新建入站规则放行 TCP 80、443
4云安全组放行 80、443云厂商控制台 → 安全组入方向允许 TCP 80、443加一条入方向规则;这是最常被漏掉的一步
5域名解析指向这台服务器浏览器打开 https://dns.google/resolve?name=你的域名&type=A返回的 IP 就是这台服务器的公网 IP到域名注册商改 A 记录,等生效(几分钟到几小时)
6能改 DNS 的 CAA 记录nslookup -type=CAA 你的域名没有 CAA 记录,或包含 letsencrypt.org删掉禁止 Let's Encrypt 的 CAA 记录
7你有管理员权限远程桌面登录时用的是管理员账号能打开 IIS 管理器找服务商/建站公司要管理员权限,别在聊天里发密码

8.1.1 怎么加、怎么检查 IIS 绑定

绑定(Bindings)是这一章的关键:它告诉 IIS「哪个域名、哪个端口、交给哪个网站」。win-acme 的「Read bindings from IIS」就是靠它读域名的,所以绑定里必须写主机名。

  1. 1. 打开 IIS 管理器(开始菜单搜 inetmgr,或「服务器管理器 → 工具 → Internet Information Services (IIS) 管理器」)。
  2. 2. 左侧展开服务器名 → 网站(Sites),点你的站点。
  3. 3. 右侧「操作」面板点绑定(Bindings),会列出这个站点所有绑定。
  4. 4. 检查有没有这样两条(有就跳过,没有就点「添加」补):
  • 类型 http、端口 80、主机名 你的域名
  • 类型 http、端口 80、主机名 www.你的域名
  1. 5. 添加时:类型选 http,IP 地址选「全部未分配」,端口填 80,「主机名」填你的域名(不要留空),确定。
  2. 6. 回到浏览器访问 http://你的域名,能打开说明绑定生效。

8.1.2 两道门都要放行(云安全组 + Windows 防火墙)

服务器的端口有两道门:云厂商控制台里的「安全组」(像小区大门),和 Windows 系统里的「防火墙」(像家门)。两道都要放行 TCP 80 和 443,缺一道申请就会失败。

第一道门:云安全组。 登录云厂商控制台(阿里云、腾讯云等)→ 找到这台服务器的安全组 → 入方向规则 → 添加 TCP 80 和 TCP 443。

云安全组添加 80/443 入方向规则(以阿里云 ECS 为例,菜单名称以实际控制台为准)
示意图云安全组添加 80/443 入方向规则(以阿里云 ECS 为例,菜单名称以实际控制台为准)

第二道门:Windows 防火墙。 图形界面:「高级安全 Windows Defender 防火墙」→ 入站规则 → 新建规则 → 端口 → TCP → 特定本地端口 80,443 → 允许连接。也可以在以管理员身份运行的 PowerShell 里一条命令搞定:

New-NetFirewallRule -DisplayName "HTTP 80" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -DisplayName "HTTPS 443" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow

逐行解释:第一条放行入方向 TCP 80;第二条放行入方向 TCP 443。跑完后用 Get-NetFirewallRule -DisplayName "HTTP 80" 能看到刚建的规则。

验证端口从外网能通(在你自己电脑上,不是在服务器上):

Test-NetConnection 你的域名 -Port 80

看 TcpTestSucceeded 是不是 True;不是的话,回去检查上面两道门和域名解析。

8.2 下载与运行 win-acme

  1. 1. 在服务器上用浏览器打开 win-acme 官网 https://www.win-acme.com,点 Download。
  2. 2. 下载文件名形如 win-acme.v2.x.x.xxxx.x64.trimmed.zip 的版本(官方推荐大多数用户使用 x64 trimmed 版;trimmed 表示去掉了用不到的文件,功能不受影响)。
  3. 3. 解压到一个固定不动的文件夹,官方建议 C:\Program Files\win-acme。不要放在桌面或「下载」文件夹——以后计划任务续期时可能找不到程序,续期就会静默失败。
  4. 4. 进入该文件夹,右键 wacs.exe → 以管理员身份运行。不是管理员运行会读不到 IIS 绑定、也写不进证书存储。

8.3 按菜单操作(全程问答式)

win-acme 主菜单与创建流程(菜单文字取自官方源码,终端样式模拟)
示意图win-acme 主菜单与创建流程(菜单文字取自官方源码,终端样式模拟)
  1. 1. 主菜单出现后,输入 N(Create certificate (default settings),用默认设置创建证书),回车。
  2. 2. 选择 Read bindings from IIS(从 IIS 读取绑定)——win-acme 会自动列出 IIS 里所有带主机名的网站。
  3. 3. 按提示选择你的网站、选择要包含的域名(一般根域名和 www 全选)、再选一个主域名(primary host)。
  4. 4. 第一次使用会让你输入邮箱(用于紧急通知)并同意 Let's Encrypt 服务条款(输入 y)。
  5. 5. win-acme 自动完成:HTTP 验证 → 下载证书 → 存入 Windows 证书存储 → 自动添加/更新 IIS 的 https(443)绑定。
  6. 6. 最后它会创建一个 Windows 计划任务,每天检查一次,快到期时自动续期并重新绑定。

菜单里几个选项的意思(不选错就行):

菜单项含义你要选哪个
N · Create certificate (default settings)用默认设置新建证书(推荐)✅ 第一次就选它
M · Create certificate (full options)高级模式,参数更多一般不需要
R · Renew certificate手动立即续期一次需要时用
A · Manage renewals查看/管理已有的续期计划第 6 步验证时用
Read bindings from IIS从 IIS 自动读域名(省得手打)✅ 选它
Manual input手动输入域名绑定里没有主机名时才用

8.4 验证(四件事都做)

  1. 1. 浏览器访问 https://你的域名,点地址栏左侧图标 → 能看到「连接是安全的」「证书有效」。电脑和手机各试一次。
  2. 2. 四种网址都试:https://你的域名、https://www.你的域名、http://你的域名、http://www.你的域名。前两个应正常,后两个应自动跳到 https(跳转在第 8.5 步配置)。
  3. 3. 再看续期计划:再次运行 wacs.exe,选 A: Manage renewals,能看到刚才创建的续期计划(含到期日)。
  4. 4. 确认计划任务:打开「任务计划程序(Task Scheduler)」,在任务库中能看到 win-acme 创建的任务。

用 PowerShell 快速看响应头(可选):

curl.exe -I http://你的域名
curl.exe -I https://你的域名

第 1 条应返回 301 并带 Location: https://...(配好跳转后);第 2 条应返回 200,且能看到证书信息。

8.5 开启 HTTP → HTTPS 跳转

win-acme 只管「发证书 + 绑定」,不负责把 http 跳转到 https。IIS 要做跳转,需要「URL 重写(URL Rewrite)」模块(来源:Microsoft Learn,2026-10 核对)。

  1. 1. 到 https://www.iis.net/downloads/microsoft/url-rewrite 下载并安装 URL Rewrite 模块(服务器上装一次即可)。
  2. 2. 打开 IIS 管理器 → 你的站点 → URL 重写 → 右侧「添加规则」→ 选「空白规则」,或直接编辑站点的 web.config。
  3. 3. 把下面这段放进站点根目录的 web.config(若已有 web.config,只把 <rewrite> 那一段合并进去):
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="HTTP to HTTPS redirect" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="^OFF$" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

逐段解释:match url="(.*)" 匹配所有路径;条件 {HTTPS} 为 OFF(也就是走的 http)时才触发;动作用 301 永久跳转 到同一域名的 https 版本({HTTP_HOST} 是访客访问的域名,{R:1} 是原路径)。

8.6 确认自动续期真的有效

检查点怎么看正常的样子
续期计划存在wacs.exe → A: Manage renewals列出你的证书和到期日
计划任务存在「任务计划程序」→ 任务计划程序库有 win-acme 的任务,触发器是每天
到期日正常浏览器点锁头 → 证书 → 有效期到期日距今约 90 天(Let's Encrypt 当前有效期)

8.7 通配符证书与 DNS 验证(子域名很多时用)

如果这台服务器上有很多子域名(shop.、m.、blog.……),与其每个都单独申请,不如申请一张 *.你的域名 的通配符证书,一张覆盖所有一级子域名。

关键限制:通配符证书只能用 DNS 验证(证明你能修改域名的 DNS 记录),不能用 HTTP 验证。原因是 Let's Encrypt 要先确认你对整个域名有控制权,而不是只有某个子目录的访问权。

Let's Encrypt 官方文档“验证方式(Challenge Types)”页面,介绍 HTTP-01 与 DNS-01
真实截图Let's Encrypt 官方文档“验证方式(Challenge Types)”页面,介绍 HTTP-01 与 DNS-01

在 win-acme 里走 DNS 验证的要点:

  1. 1. 运行 wacs.exe,主菜单选 M(Create certificate,full options)或按向导选到「Manual input」,手动输入 *.你的域名 和 你的域名。
  2. 2. 到验证方式那一步,选 DNS 验证(不是默认的 http 文件验证)。
  3. 3. win-acme 会给你一条 TXT 记录(名字形如 _acme-challenge.你的域名,值是它生成的一串字符)。你要在域名 DNS 管理后台手动添加这条 TXT 记录。
  4. 4. 加完等 DNS 生效(几分钟),回 win-acme 回车继续,它会自己去查这条 TXT 记录,查到就签发。

8.8 用 PowerShell 核对证书和绑定

不想每次都开浏览器看,可以用两条命令快速核对(以管理员身份运行 PowerShell):

Get-ChildItem Cert:\LocalMachine\My | Where-Object { $_.Subject -like "*你的域名*" } | Format-List Subject, NotAfter, Issuer

逐行解释:在「本地计算机 → 个人」证书存储里,找出主题里包含你域名的证书,显示颁发对象、到期日、颁发者。能列出来说明证书已装进 Windows。

Import-Module WebAdministration; Get-WebBinding -Name "你的站点名" | Select-Object protocol, bindingInformation

逐行解释:列出该 IIS 站点的所有绑定,protocol 是 http 还是 https,bindingInformation 里能看到端口和主机名。配好证书后,这里应该多出一条 https、端口 443、主机名为你域名的绑定。

常见失败与排查

症状最可能的原因解决办法
主菜单里 Read bindings from IIS 列表是空的IIS 绑定里没写主机名(Host name 为空)到 IIS 绑定里给 80 端口那条补上「主机名」,或改用 Manual input 手打域名
验证失败:连接超时 / connection refused80 端口被防火墙或云安全组挡住,或被别的程序占用两道门(云安全组 + Windows 防火墙)都放行 TCP 80;确认没有别的软件抢 80 端口
验证失败:域名解析不到A 记录没指向这台服务器,或 DNS 还没生效用 dns.google 查 A 记录,等生效后重试
验证失败:返回了别的页面 / 404有旧的重定向规则、CDN 或反向代理把验证文件拦掉了临时关掉 301 跳转和 CDN,或改用 DNS 验证
装完仍提示「不安全」页面里还混着 http:// 的图片/脚本(混合内容)按 F12 → Console 搜 Mixed Content 逐个改成 https
访问 http:// 时无限重定向Cloudflare Flexible 模式 + 源站强制 https 两头跳转Cloudflare 改 Full (strict),或只让一头做跳转
续期失败、证书过期win-acme 文件夹被移动/删除,计划任务找不到程序把 win-acme 放回固定文件夹(如 C:\Program Files\win-acme)并重建续期计划
提示 80 端口被占用默认站点(Default Web Site)或其他软件抢了 80在 IIS 里停掉不用的站点,或确认端口占用程序;保证你的站点独占 80
第二个 https 站点加不上443 绑定没勾 SNI,端口冲突添加 443 绑定时勾选「需要服务器名称指示(SNI)」
证书装好了但 IIS 没自动换绑定没更新,或用了自签名证书重新运行 wacs.exe 选 R 立即续期一次;确认绑定指向的是 Let's Encrypt 签发的证书
手机访问正常、电脑报错(或反过来)证书链不完整,部分设备对中间证书更敏感用 SSL Labs 检测,按「Chain issues / Incomplete」处理
计划任务显示「上次运行失败」任务运行时权限不足,或程序路径被改确认任务以管理员/SYSTEM 运行、程序路径存在;在 win-acme 里重建续期计划

回滚怎么做

万一要退回改动之前的状态:

  1. 1. 去掉跳转:删掉或注释 web.config 里的 <rewrite> 规则,网站回到不强制跳转的状态。
  2. 2. 去掉 https 绑定:IIS 管理器 → 站点 → 绑定 → 删掉 443 那条(证书文件仍在证书存储里,不影响 http 访问)。
  3. 3. 停掉续期任务:「任务计划程序」里禁用/删除 win-acme 的任务,或在 wacs.exe → A: Manage renewals 里取消续期计划。
  4. 4. 彻底移除:删除 C:\Program Files\win-acme 文件夹即可(它是绿色免安装的,不写注册表核心项)。

一页速查(可打印)

步骤做什么关键操作成功标志
① 准备网站能 http 打开、绑定有主机名、80/443 放行IIS 管理器 → 绑定浏览器能打开 http://你的域名
② 下载下 win-acme x64 trimmed 版解压到 C:\Program Files\win-acmewacs.exe 就位
③ 运行管理员运行 wacs.exe右键 → 以管理员身份运行出现主菜单
④ 申请N → Read bindings from IIS → 选站点同意条款、填邮箱显示申请成功、绑定已更新
⑤ 验证看证书、看续期计划、看计划任务A: Manage renewals证书有效、续期计划可见
⑥ 跳转装 URL Rewrite,加 301 规则编辑 web.confighttp:// 自动跳 https://
⑦ 监控设一个到期提醒外部监控服务 / 手机日历到期前收到提醒

想省事的话,把这一页复制给 AI 智能体,让它按你的实际情况带你做;或者直接找我们做——见页面底部的终身维护服务。

答疑

常见问题

Windows 服务器上装 SSL 一定要花钱买证书吗?

不需要。win-acme 向 Let's Encrypt 免费申请,浏览器一样信任,加密强度与付费证书没有区别。真正值得花钱的是「部署 + 长期维护」的服务费,而不是证书本身。有人说要收几千元给你装一张「金融级证书」,那基本是不必要的支出。

win-acme 安全吗?会不会把我服务器的密码传出去?

win-acme 是开源的免费工具,在你自己服务器上运行,只需要能读 IIS 绑定、写证书存储和计划任务,不需要你的账号密码,也不会把私钥外传。要留意的是:证书私钥留在你服务器上,不要发给任何人;需要填邮箱时用公司邮箱即可。

申请时提示连接超时或验证失败,怎么办?

九成是 80 端口不通。win-acme 默认用 HTTP 验证,Let's Encrypt 要从外网访问你域名的 80 端口。请依次检查:云安全组是否放行 TCP 80、Windows 防火墙是否放行 TCP 80、80 端口有没有被别的程序占用、域名 A 记录是否指向这台服务器。四项都对还失败,临时关掉重定向规则和 CDN 再试。

证书会自动续期吗?我还需要做什么?

win-acme 会创建一个每天运行的 Windows 计划任务,快到期时自动续期并重新绑定 IIS,正常情况你什么都不用做。你需要做两件事:一是别移动或删除 win-acme 所在的文件夹(移动了任务就找不到程序);二是设一个外部到期监控,因为 Let's Encrypt 已不再发送到期提醒邮件。

装完证书,访问 http 还能打开,需要强制跳转吗?

建议做。装了证书但没跳转,访客输 http 或点旧链接仍会走不加密的通道,浏览器也可能仍显示不安全。IIS 需要先安装 URL Rewrite 模块,再添加一条 301 跳转规则;如果域名接了 Cloudflare,也可以直接用它的「始终使用 HTTPS」,二选一即可。

服务器上装的是宝塔 Windows 版或其他面板,还能用 win-acme 吗?

先看面板里有没有 SSL 入口:有就优先用面板申请,更简单。面板里没有、或者面板没有接管 IIS 的网站,就按本页用 win-acme 操作。注意不要让面板和 IIS 抢同一个 80 端口,否则证书验证会失败。

核实

资料来源与核实记录

价格、政策与版本信息均注明来源和核实日期。

事实来源核实日期
win-acme 入门:Windows IIS 自动申请与续期win-acme.com2026-10-10
IIS URL Rewrite 模块:创建重写规则(http 跳 https)Microsoft Learn2026-10-10
IIS URL Rewrite 模块下载地址iis.net2026-10-10
Let's Encrypt 验证方式(HTTP-01 / DNS-01)letsencrypt.org2026-10-10
Let's Encrypt 频率限制(每域名每周 5 次签发等)letsencrypt.org2026-10-10
Let's Encrypt 证书有效期将缩短至 64/45 天(公告 2025-12-02)letsencrypt.org2026-10-10
Let's Encrypt 到期提醒邮件服务已结束(源材料记为 2025-06-04 起停止)letsencrypt.org2026-10-10
未备案域名解析至中国内地服务器将被阻断help.aliyun.com2026-10-10

更新记录

2026-10-12 · v1.0:上线:路线 F(Windows IIS + win-acme)单页教程,含 7 项预检、菜单逐项说明、URL Rewrite 跳转、失败排查表与一页速查。

本专题全文以 CC BY 4.0 协议开源,可转载、改编,请注明出处:GitHub · iPythoning/ssl-guide-zh

交给我们

不想自己动手?

泓森互联提供 SSL 证书终身维护服务:部署、监控、自动续期与失效应急,一次购买长期有效。服务范围与价格以服务页为准;也可以先做免费体检,把情况摸清楚再决定。

留个联系方式,我们帮你看看

不确定自己的网站是什么情况?留下信息,或直接 预约诊断,我们把体检结果和修复路径说清楚。

体验 AI 销售