IIS怎么添加HTTP到HTTPS重定向?IIS强制HTTPS配置教程

更新时间:2026-01-03 来源:TopSSL技术团队

IIS怎么添加HTTP到HTTPS重定向?

在 IIS 中配置 HTTP 到 HTTPS 重定向,最常用的方案是借助 IIS URL Rewrite 模块创建 301 重定向规则。当用户通过 HTTP 协议发起请求时,服务器会自动返回 301 状态码并将请求引导至对应的 HTTPS 地址。

配置前需要确保服务器已经完成 SSL证书安装 并且 HTTPS 站点可以正常访问。利用 URL Rewrite 的 {HTTPS} 匹配条件,可以避免网页产生 HTTP 与 HTTPS 双版本并存的情况,有助于收录集中与安全访问。

对于包含 CDN 或负载均衡的复杂架构,还需要特别注意前置代理的状态传递,防止产生重定向循环。


一、配置IIS重定向前需要准备什么?

开始配置之前,需要先确认两个前提条件:

第一,网站已经成功安装 SSL 证书。可以通过浏览器直接访问 https://www.example.com,确认网页能够正常打开,并且没有弹出现证书域名不匹配、过期或不受信任等报错。如果有报错,可以参考 修复SSL证书错误 先行解决。

第二,IIS 已经安装 URL Rewrite 模块。IIS 默认并不包含完整的 URL 重写功能。如果在 IIS 管理器面板中看不到“URL 重写”图标,需要先下载并安装 Microsoft IIS URL Rewrite 模块。


二、通过IIS管理器添加HTTP到HTTPS重定向

安装好 URL Rewrite 模块后,可以直接在 IIS 可视化界面中进行配置。

1. 打开 IIS 管理器

打开 IIS 管理器,在左侧连接树中选择需要配置的站点,双击主界面中的“URL 重写”图标。

2. 添加空白规则

在右侧“操作”栏点击“添加规则”,选择“空白规则”,将规则名称命名为:Force HTTPS

3. 设置匹配规则

在“匹配 URL”区域进行如下设置:

  • 请求的 URL​:匹配模式
  • 使用​:正则表达式
  • 模式​:(.*)
  • 勾选“忽略大小写”

4. 添加 HTTPS 判断条件

在“条件”区域点击“添加”,配置如下参数:

  • 条件输入​:{HTTPS}
  • 模式​:^OFF$

这一步的作用是:只有当当前请求不是通过 HTTPS 建立时,才会触发重定向规则。这是防止无限循环的关键条件。

5. 设置重定向操作

在“操作”区域进行配置:

  • 操作类型​:重定向
  • 重定向 URL​:https://{HTTP_HOST}{REQUEST_URI}
  • 重定向类型​:永久 (301)

301 状态码会明确告知搜索引擎和浏览器该资源已永久迁移到 HTTPS。保留“附加查询字符串”勾选,可以确保原 URL 中的参数(如 ?id=123)在跳转后不丢失。


三、直接修改 web.config 配置 IIS HTTPS 重定向

除了在界面操作,也可以直接编辑网站根目录下的 web.config 文件。将以下节点规则加入其中:

XML

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Force HTTPS" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" 
                            url="https://{HTTP_HOST}{REQUEST_URI}" 
                            redirectType="Permanent" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

需要注意的是:如果网站根目录已经存在 web.config,切勿直接覆盖整个文件。只需要将 <rewrite></rewrite> 之间的节点内容提取出来,嵌入到现有的 <system.webServer> 节点中即可,避免影响原有的 ASP.NET 或 IIS 其他组件配置。

四、为什么IIS配置后没有跳转?

如果添加规则后 HTTP 请求依然没有自动跳转,可以按照以下逻辑逐一排查:

  1. 检查模块状态​:查看 IIS 管理器中是否存在“URL 重写”功能,确认模块已安装并启用。
  2. 校验 XML 语法​:检查 web.config 的标签闭合情况。XML 语法错误会导致 IIS 直接抛出 500 服务器内部错误。
  3. 检查 80 端口绑定​:进入“IIS ➔ 网站 ➔ 绑定”,确认站点绑定列表中同时存在 http(80 端口)和 https(443 端口)。如果缺失 HTTP 绑定,服务器将无法接收来自 80 端口的流量,自然无法触发重定向。
  4. 验证 HTTPS 正常性​:如果在浏览器直接输入 https:// 访问时提示证书错误,应当优先解决证书和 443 端口绑定问题,而不是反复修改重定向规则。

五、IIS出现HTTP与HTTPS重定向循环怎么办?

如果浏览器提示 ERR_TOO_MANY_REDIRECTS,或者页面在 HTTP 和 HTTPS 之间不断跳转,主要原因是网站前面部署了 CDN、高可用负载均衡器或反向代理。

在这类架构中,常见的数据流向为:

Plaintext

客户端 ➔ (HTTPS) ➔ CDN/负载均衡 ➔ (HTTP) ➔ 后端 IIS 服务器

此时客户端与 CDN 之间使用的是 HTTPS,但 CDN 到 IIS 源站之间使用的是 HTTP。如果 IIS 单纯依靠 {HTTPS} 变量(值为 OFF)来判断,就会误以为客户端发起的也是 HTTP 请求,从而再次返回 301 跳转指令。

解决办法是:不直接套用标准的 {HTTPS} 条件,而是让前置代理传递重定向请求头(如 X-Forwarded-Proto: https),并在 IIS 重定向规则或应用层配置中根据该请求头进行判断。


六、IIS重定向应该使用301还是302?

当网站决定由 HTTP 切换到 HTTPS 时,推荐使用 ​301 Permanent Redirect​。

状态码含义适用场景
301永久重定向网站正式升级 HTTPS,引导搜索引擎传递权重并让浏览器缓存跳转关系
302临时重定向站点临时维护或短期内的业务测试

对于生产环境的 HTTPS 强制跳转,统一采用 301 重定向是符合搜索引擎优化标准的做法。如果对于整体架构规划尚有疑问,可以参考 SSL证书选购指南 了解不同证书形态与部署架构的对应关系。

七、如何检查IIS HTTPS重定向是否成功?

配置完成后,可以在终端使用命令行查看 HTTP 响应头信息:

Bash

curl -I http://www.example.com

如果配置成功,服务器会返回类似如下的响应头:

HTTP

HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/

应当重点核对状态码是否为 301,以及 Location 字段是否精确指向了 https:// 开头的目标地址。

此外,也可以借助 SSL证书工具 对站点的 TLS 状态、协议支持和证书链完整性做综合检测。


八、常见问题 FAQ

Q:IIS一定要安装URL Rewrite才能实现HTTP跳转HTTPS吗?

A: 如果使用 web.config 配置文件方式,需要安装 URL Rewrite 模块。虽然 IIS 也可以通过 HTTP 重定向功能或代码层(如 Global.asax)处理,但使用 URL Rewrite 是目前性能较好且改动较小的标准方案。

Q:安装SSL证书后还需要配置HTTP跳转HTTPS吗?

A: 需要。SSL 证书仅用于建立 HTTPS 加密管道,本身不会强行拦截或转换 HTTP 流量。如果希望用户在输入普通 HTTP 网址时自动进入加密页面,必须配置重定向规则。

Q:IIS配置HTTPS重定向后出现ERR_TOO_MANY_REDIRECTS怎么办?

A: 请排查是否存在反向代理或 CDN。当代理节点到 IIS 源站走的是 HTTP 协议时,需要根据代理节点传递的 X-Forwarded-Proto 头信息来决定是否跳转,避免源站反复判断失误。

IIS 强制 HTTP 跳转 HTTPS 的核心,是利用 URL Rewrite 模块结合 {HTTPS} 变量判断,并返回标准的 301 响应。只要确保 80 与 443 端口绑定正常,并在多层代理架构下妥善处理前置 HTTPS 协议头的传递,就能建立顺畅的 HTTPS 访问机制。如果 IIS 尚未部署 SSL 证书,可以先完成证书申请和 怎么安装SSL证书,再按照本文配置 HTTP 到 HTTPS 重定向。

立即探索,帮您快速寻找适合您的SSL数字证书 申请SSL证书
免费SSL证书 - SSL证书申请与HTTPS安全服务平台 | TopSSL
提供免费与付费SSL证书申请
关注 TopSSL 公众号, RSS订阅SSL资讯与技术支持

TopSSL是一站式SSL证书服务平台,提供免费SSL证书申请、商业SSL证书服务及HTTPS安全解决方案,支持DV、OV、EV、通配符和国密SSL证书服务。2004-2026 © 北京传诚信  版权所有 |  北京市朝阳区鹏景阁大厦16层

技术协助:wo@topssl.cn 企业咨询:vip@topssl.cn