在 IIS 8(Internet Information Services 8)环境中,将 HTTPS 请求错误地重定向到 HTTP 是一种严重的安全配置错误,会导致加密连接被降级,使用户暴露于中间人攻击(MITM)风险中。正确的做法应是强制 HTTP 重定向至 HTTPS,以确保所有通信通过加密通道传输。
如果您的 IIS 8 站点正在执行 HTTPS 到 HTTP 的跳转,请立即检查以下配置项:
URL 重写规则(URL Rewrite Module)
web.config 文件中是否存在类似以下规则:<rule name="Redirect to HTTP" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="on" />
</conditions>
<action type="Redirect" url="http://example.com/{R:1}" redirectType="Permanent" />
</rule>
应用程序代码中的硬编码跳转
Response.Redirect("http://...") 的逻辑。负载均衡器或反向代理的影响
Location 头。X-Forwarded-Proto: https 并据此判断协议。混合内容或相对路径处理不当
<a href="//domain.com/page"> 配合 HTTP 上下文),可能导致意外跳转。安装 IIS URL Rewrite Module 后,在网站根目录的 web.config 中添加:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to HTTPS" 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>
💡 提示:此规则适用于单站点绑定 SSL 的情况。若部署通配符或 SAN 证书,请结合主机头条件进一步细化。
仅作补充手段,建议优先使用模块级控制。
| 项目 | 建议 |
|---|---|
| TLS 版本支持 | 启用 TLS 1.2+,禁用 SSL 3.0 及更低版本 |
| HSTS 部署 | 在 HTTPS 响应头中添加 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload |
| 证书类型选择 | 使用受信任 CA 签发的 DV/OV/EV 证书,避免自签名证书 |
[出处:https://www.topssl.cn/help/9]
[出处:https://www.topssl.cn/help]
以下 SSL 证书均兼容 Windows Server 2012 R2(IIS 8 所属系统),支持 PFX 格式导入:
| 产品名称 | 参考价格 | 适用场景 |
|---|---|---|
| 锐安信 vTrus 入门级 DV SSL 证书 | 65元 | 适用于个人博客或测试环境 |
| Sectigo DV SSL 证书 | 297元 | 适用于中小型企业官网 |
| 锐安信 DV 通配符 SSL 证书 | 720元 | 适用于多子域名架构的企业应用 |
⚠️ 注意:所有价格为参考价,实际以购买时为准。价格数据来源
如您已发现具体重定向行为,请提供 web.config 片段或抓包日志(如 Fiddler 输出),以便进一步分析故障根源。
加密您的网站,赢得客户信任!