妙数

网站安装https证书后循环重定向问题解决方案
通过https访问的网站能够保障用户数据的安全传输,是主流发展方向,所以本站也在第一时间安装并启用了全站https...
扫描右侧二维码阅读全文
07
2018/10

网站安装https证书后循环重定向问题解决方案

通过https访问的网站能够保障用户数据的安全传输,是主流发展方向,所以本站也在第一时间安装并启用了全站https访问

但是在安装https证书后的强制转到https网址的过程中却不太顺利,遇到了一些麻烦,下面将对问题现象和最终的解决方案进行记录

实现目标

问题出现

  • 当在服务器安装好证书,并在iis服务器管理中设置好URL Rewrite规则之后,网站出现了循环重定向的错误,无法正常访问
    https1.png

问题解决

  • 首先仔细检查了https证书的安装和重写规则的配置,再三确认没有问题,但是错误依然存在
  • 经过大量的搜索之后,终于看到一篇关于cdn造成https循环跳转的文章CloudFlare Flexible SSL导致重定向循环
  • 因为自己用的也是cloudflare的网站防护,所以经过仔细阅读后找到了问题的原因

问题原因

  • 当在cdn中(比如百度云加速或者cloudflare)开启https后,默认的情况是用户和cloudflare之间是https连接,但是cloudflare和网站之间依然是http连接
  • 所以我们需要让整个过程实现https连接,就可以解决这个问题

解决方案

  1. 在服务器安装好https的证书和配置好重写规则
  2. 将cloudflare默认的https设置选项修改为Full Strict
    https2.png

设置完成后即可解决因cloudflare设置错误导致的http跳转https循环重定向的问题

url rewrite下载

参考网址

IIS 7如何实现http重定向https
IIS7如何实现HTTP重定向HTTPS
CloudFlare Flexible SSL导致重定向循环
CloudFlare免费SSL证书:为网站开启https访问

附:iis7环境先的重定向规则(放在web.config对应位置,修改为对应的网址)

        <rewrite>
            <rules>
            <rule name="add www" stopProcessing="true">
                <match url="^(.*)$" ignoreCase="false" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^mioshu\.com$" />
                    </conditions>
                        <action type="Redirect" redirectType="Permanent" url="https://www.mioshu.com/{R:1}"/>
            </rule>
            <rule name="redirec to https" stopProcessing="true">
            <match url="(.*)" />
                <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                        <add input="{HTTPS_HOST}" pattern="^(localhost)" negate="true" />
                </conditions>
            <action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
            </rule>
            </rules>
        </rewrite>
最后修改:2018 年 10 月 23 日 02 : 16 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论