WDCP、宝塔等通过https访问http站点跳转到已开启的https站点上

1705人参与 |分类: 程序学习|时间:2020-06-03 16:12:41

在做网站httpss化后会发现各种奇怪的问题。比如一个服务器(如:在wdcp、宝塔等控制面板中)上有10个站点,其中一个站点进行了httpss化,但是其它还是https站点,这个时候会出现一个问题,就是以httpss方式访问任意https站点会直接跳转到那个唯一的httpss站点。如:给www.huige.me站点开启了的httpss,访问https://www.huige.me 显示正常。但是访问未配置httpss的站点域名时,如 https://www. shanqishi.com会打开https://www.huige.me的内容。(Nginx规则:首先查找配置文件里有无匹配的域名,如未找到,则查找default_server,如default_server未设置,则默认匹配配置文件排序后的第一个)解决办法:为Nginx的443端口设置默认域名default_server,并拒绝访问。

server {

listen 443 default_server;

server_name _ ;

ssl on;

ssl_certificate cert.pem;

ssl_certificate_key cert.key;

#让 httpss 请求重定向到https请求

return 301 https://$host$request_uri;

}

注意:
ssl_certificate 随便设置一个ssl证书; 
ssl_certificate_key 随便设置一个ssl证书的key;
这两行配置必须要有,否则Nginx会拒绝所有443的连接(正常开启httpss的域名也会无法访问,大坑)
同时 return 301 https://$host$request_uri 可设置让未配置ssl证书的域名直接跳转到https域名上。