今天,我把百度云加速去掉了,然后又重新接入后,发现访问http://www.ihewro.com 会显示重定向次数过多的问题,但我并没有修改ngnix的相关配置。

关于博客站点的ngnix重定向设置了两个地方,分别是http->https 和 非www开头->www开头,两个地方的配置分别如下:

# http->https 重定向
if ($server_port !~ 443){
    rewrite ^(/.*)$ https://$host$1 permanent;
}

# 非www开头->www开头
if ($host ~ '^ihewro.com'){
    return 302 http://www.ihewro.com$request_uri;
}

这两个配置肯定是没问题的,之前一直在用。

最后检查的原因是,百度云加速的https设置为了半程加密导致的问题

使用cdn这类工具,其实即使服务器上不部署ssl证书都可以实现ssl访问,如果是半程加密以我的博客为例,访问过程如下:

https://www.ihewro.com(浏览器) -> 百度云cdn(进行校验证书是否有效)---回源--> 服务器(80端口)

可以看到这里回源的服务器的80端口,而非443端口,这就是半程加密。

所以为什么导致重定向次数过多的原因就知道了。

https://www.ihewro.com -> 服务器80端口-> 触发rewrite规则 -> https://www.ihewro.com 导致循环。

同样的不加密、全程加密、严格加密的意义就很容易理解了。

  • 如果选择不加密,访问https://www.ihewro.com 浏览器会直接显示不支持https,不安全的链接之类的错误。
  • 如果选择全程加密,这服务器上也必须要部署自签名的证书(cdn 回源的时候不校验服务器证书的合法性),如果服务器上面没有部署自签名的证书,浏览器就会显示不支持的证书之类的错误)
  • 如果选择严格加密,则服务器需要部署受信任的 CA 证书,否则浏览器就会显示不支持的证书之类的错误

end.

最后修改:2020 年 08 月 15 日
喜欢我的文章吗?
别忘了点赞或赞赏,让我知道创作的路上有你陪伴。