专栏首页前端资源宝塔面板 IIS10 利用web.config文件强制HTTPS跳转

宝塔面板 IIS10 利用web.config文件强制HTTPS跳转

我的服务器是用的Windows Server IIS10,也是刚刚搬过来不久,之前HTTPS是验证通过的。

因为我比较懒,所以用的“BT面板”,设置了SSL和强制HTTPS,好像并不怎么理想。

今天发现我网站的百度HTTPS验证不通过,应该是搬过来之后,配置没有达到标准。

找了很多种方法去配置都验证不成功,我打算利用网站根目录的 web.config 文件实现自动跳转,网上大多数的规则写法都是一样的,不过好像只适用于IIS7、8

代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="http redirect to https" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                        <add input="{HTTPS_HOST}" pattern="^(localhost)" negate="true" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

如果您之前有配置文件,只需要添加 <rule> ... </rule> 部分即可。

最后在GG上找到了配置规则,可以适用于我的IIS10。

在 <rules> 标签下,添加如下代码:

<clear />
<rule name="Redirect to https" stopProcessing="true">
	<match url="(.*)" />
	<conditions>
		<add input="{HTTPS}" pattern="off" ignoreCase="true" />
	</conditions>
	<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>

注意,一定要加在最前面,否则 <clear /> 会去掉 config.web 中包含或继承来的引用,造成网站出错。

添加后保存,重启IIS服务器就可以实现跳转了。

需要注意的是:

1、IIS管理器内该网站的 SSL设置,“要求SSL”一定不要勾选,会造成 http 403 或者 500 错误,无法跳转 https。

2、SSL的客户证书一定要设置为“忽略”,否则手机访问时会提示“找不到任何证书”,应用“浏览器”请求使用证书。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • centos6.5 openssh升级

    4. 卸载系统自带的openssh,卸载之前先停止sshd服务,再用rpm删除,同时清除系统/etc/ssh目录

    孙杰
  • openssh8.0升级及问题总结

    因安全漏扫软件扫描业务虚机,发现有openssh ssh存在漏洞,此次需将openssh5.3P1升级至OpenSSH_8.0p1

    孙杰
  • Etcd 配置详解

    对于标记 --my-flag 环境变量的格式是 ETCD_MY_FLAG。 适用于所有标记。

    用户5760343
  • 从零开始搭建腾讯云服务器

    腾讯云服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。...

    用户6248011
  • ubuntu14.04.1升级openssh

    由于ubuntu14.04.1默认的openssh是5.6p1版的,有很多安全漏洞,所以计划升级至openssh7.5p1 一、下载升级所需的软件 zlib-1...

    孙杰
  • Etcd 集群配置证书通信

    1、使用自制证书 etcd --name infra0 --initial-advertise-peer-urls http://10.0.1.10:2380...

    用户5760343
  • 面试官问我:一个 TCP 连接可以发多少个 HTTP 请求?我竟然回答不上来...

    来源 | https://zhuanlan.zhihu.com/p/61423830

    好好学java
  • libssl.so.10缺失库文件的解决办法

    在RHEL6.5中对openssl进行了升级,如果老版本是OpenSSL 1.0.1e-fips,那直接安装最新的openssl-1.0.1g-1.x86_64...

    孙杰
  • SSL证书创建与部署

    SSL证书简介 SSL证书创建 SSL证书部署-Nginx SSL证书部署-Apache SSL证书部署-Tomcat

    达达前端
  • vsphere端口组和vswitch的负载平衡策略

    4. 卸载系统自带的openssh,卸载之前先停止sshd服务,再用rpm删除,同时清除系统/etc/ssh目录

    孙杰

扫码关注云+社区

领取腾讯云代金券