Note · 2023年7月11日 0

IIS实现http跳转https的重定向方法

IIS实现http跳转https的重定向方法

一、安装部署证书

首先再控制台申请SSL证书,阿里云与腾讯云控制台可以领取一次数量为20的免费证书,期限一年。
在IIS服务器上安装IIS证书(阿里云)
IIS 服务器 SSL 证书安装部署(腾讯云)

阿里云申请免费SSL证书
腾讯云申请免费SSL证书

二、安装URL ReWrite扩展

URL ReWrite扩展下载地址

三、http跳转https的重定向方法

有两种方法,第一种是在iis中添加入站规则;第二种是在web.config中代码配置

1.添加入站规则

安装完成后重新打开IIS,再部署的网站主页会多出一个URL重写的栏目

双击打开后依次点击:添加规则——空白规则——确定。

添加入站规则如下图所示进行修改(名称自定义)。

条件添加如下图:

条件说明:

条件输入检查输入字符串是否模式忽略大小写备注
{HTTPS}与模式匹配^OFF$此项用来匹配请求是HTTPS还是HTTP
{HTTPS_HOST}与模式不匹配^(localhost)如果是本地不会重定向到SSL

服务器变量无需修改,操作项修改如下图:
操作类型为重定向,重定向URL为https://{HTTP_HOST}/{R:1},勾选附加查询字符串,重定向类型为永久(301)

最后点击右上角应用即可。

2.Web.Config配置

打开项目的Web.Config配置文件,在<system.webServer>中,配置如下重定向代码:

<rewrite>
    <rules>
        <rule name="xinxin" 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>

这些代码对应的就是第一种方法保存后的逻辑代码。
两种方法都基于安装了URL ReWrite扩展的IIS。

这时用http通道访问网站就会重定向为https通道访问了。