上一篇 下一篇 分享链接 返回 返回顶部

Windows Server 2012 IIS8+ 强制 HTTP 跳转 HTTPS 详细教程

发布人:诺昂网络 发布时间:2025-08-22 23:32 阅读量:261

一、配置方法(三选一)

​​方法1:URL重写模块(推荐)​​

1. ​​安装模块​​:

​​2. 配置规则​​:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Force 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>

​​方法2:IIS管理器可视化配置​​

1. 打开IIS管理器 → 选择目标网站

2. 双击 ​​"URL重写"​​ → 点击右侧 ​​"添加规则"​

3. 选择 ​​"空白规则"​​ 并配置:

    • 名称:强制HTTPS

    • 匹配URL:(.*)

    • 条件:{HTTPS} = OFF

    • 操作类型:重定向

    • 重定向URL:https://{HTTP_HOST}/{R:1}

    • 勾选 ​​"301永久重定向"​

​​方法3:命令行一键配置​​

Add-WebConfigurationProperty -PSPath "IIS:\Sites\Your_Site_Name" -Filter "system.webServer/rewrite/rules" -Name "." -Value @{
    name='Force HTTPS'; 
    stopProcessing='true';
    match=@{url='(.*)'};
    conditions=@{
        add=@{
            input='{HTTPS}'; 
            pattern='^OFF$'
        }
    };
    action=@{
        type='Redirect'; 
        url='https://{HTTP_HOST}/{R:1}';
        redirectType='Permanent'
    }
}

二、高级场景配置

​​1. 多域名支持​​

<rule name="Multi-Domain Redirect">
  <match url="(.*)" />
  <conditions logicalGrouping="MatchAny">
    <add input="{HTTP_HOST}" pattern="^domain1.com$" />
    <add input="{HTTP_HOST}" pattern="^www.domain2.com$" />
  </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>

​​2. 排除特定路径​​

<rule name="Force HTTPS">
  <match url="(.*)" />
  <conditions>
    <add input="{HTTPS}" pattern="^OFF$" />
    <!-- 排除API测试接口 -->
    <add input="{REQUEST_URI}" pattern="^/api/test" negate="true" />
  </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>

​​3. 启用HSTS(安全增强)​​

<outboundRules>
  <rule name="Add HSTS Header">
    <match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" />
    <action type="Rewrite" value="max-age=31536000; includeSubDomains; preload" />
  </rule>
</outboundRules>

三、验证与测试

​​1. 基础测试命令​​

# 测试重定向响应
curl.exe -I http://yourdomain.com

# 预期结果:
# HTTP/1.1 301 Moved Permanently
# Location: https://yourdomain.com/

​​2. 自动化测试脚本​​

$testUrls = @(
    "http://yourdomain.com",
    "http://yourdomain.com/login",
    "http://yourdomain.com/api/test"  # 排除路径测试
)

foreach ($url in $testUrls) {
    $response = Invoke-WebRequest -Uri $url -Method Head -UseBasicParsing
    Write-Host "测试URL: $url"
    Write-Host "状态码: $($response.StatusCode)"
    Write-Host "重定向目标: $($response.Headers.Location)`n"
}

四、故障排查表

故障现象

解决方案

​ERR_TOO_MANY_REDIRECTS​

1. 检查SSL绑定状态
2. 删除浏览器缓存
3. 检查重定向条件逻辑

​404错误​

1. 确认规则位置在 <rules>
2. 检查URL匹配模式

​部分页面不跳转​

1. 检查页面是否包含混合内容
2. 验证排除规则配置

​IIS崩溃​

1. 删除 %windir%\System32\inetsrv\config\applicationHost.config 中的错误规则

五、诺昂网络专属支持

如部署过程中遇到任何问题,您可以:

  • 📞 联系诺昂网络技术支持团队获得​​免费远程安装协助​

  • 🔧 获取​​7×24小时技术咨询​​服务

  • 💯 享受​​7天无理由退款​​保障

​提示​​:选择诺昂网络SSL证书的用户可访问官网(www.nuoang.com)获取:

  • 📚 专属部署文档和视频教程

  • 🔔 证书到期自动提醒服务

  • 🔄 免费重新签发服务

​备注​​:部署完成后建议使用SSL Labs(https://www.ssllabs.com/ssltest/)测试评分。诺昂网络SSL证书通常可获得A+评级,为您提供最优的安全保障。

目录结构
全文
客服微信 客服微信
客服微信 客服微信
服务热线: 待添加
电子邮箱: service@nuoang.com