电脑吧 网络管理 宝塔搭建http网站会跳到https网站怎么回事?

宝塔搭建http网站会跳到https网站怎么回事?

目前很多人用宝塔面板搭建https网站,但是如果你使用宝塔面板搭建的网站不止一个,且同时有http和https协议时,会发现http网站会在https下串站的BUG:

宝塔创建i3939.com站点使用了https,其它站点(例如6e6e.net)使用的是http,而未配置或开启https协议,但是你使用https://6e6e.net访问网站的时候,神奇的事情就发生了,网站内容显示的是https://i3939.com的内容。明明6e6e.net没有开启https却可以访问,而且内容还是i3939.com网站的内容。惊不惊喜意不意外?

刚好两位大神也在群里说到这个问题,不但让很多站长头疼,而且对SEO也是很不友好。下面我们一起来看看引起这个问题的原因和解决方法:

一、引起https站跳http站的原因:

宝塔ssl配置说明

从上图宝塔面板在ssl配置里这样说到:在未指定SSL默认站点时,未开启SSL的站点使用HTTPS会直接访问到已开启SSL的站点。这就是导致串站和跳站的原因。

二、nginx环境下的解决方法

1、添加新建一个站点,绑定域名那里填你服务器的ip,其他按下图设置。

宝塔添加新站点

2、修改这个站点的配置文件如下:

server

{

#设置80端口不能通过ip访问。

listen 80 default_server;

server_name 123.123.123.123;

root /www/wwwroot/123.123.123.123;

return 444;

}

server {

#设置443端口如果站点没有启用ssl直接返回444状态码。

listen 443 default_server;

server_name _ ;

ssl on;

#注意修改以下部分内容,把路径换成你服务器上已存在的证书。

ssl_certificate /www/server/panel/vhost/cert/xxx/fullchain.pem;

ssl_certificate_key /www/server/panel/vhost/cert/xxx/privkey.pem;

#证书部分结束

return 444;

}

其中server_name 123.123.123.123中的123要修改成你网站ip,另外ssl_certificate /www/server/panel/vhost/cert/xxx/fullchain.pem和ssl_certificate_key /www/server/panel/vhost/cert/xxx/privkey.pem这两个文件要换成你网站已经存在的https的证书就可以了。

这段nginx的配置功能就是如果你用ip或者没有配置https协议的域名访问,nginx直接返回444的http代码,告诉浏览器“关闭这个连接,不发送其他请求”。

通过上面设置以后你会发现整个世界清静了,宝塔面板https协议导致的相互串站问题也解决了。目前没有测试win的宝塔面板和apache环境,但是思路是相同的,apache里添加一个站点,设置http状态码为400应该也是可以的。

本文来自网络,不代表电脑吧立场,转载请注明出处。

作者: yitu2008

上一篇
下一篇

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部