只针对Nginx有效, 目前很多人用宝塔面板搭建https网站,但是如果你使用宝塔面板搭建的网站不止一个,且同时有http和https协议时,会发现http网站会在https下串站.
宝塔创建aaa.com站点使用了https,其它站点(例如bbb.com)使用的是http,而未配置或开启https协议,但是你使用https://bbb.com访问网站的时候,神奇的事情就发生了,网站内容显示的是https://aaa.com的内容。明明bbb.com没有开启https却可以访问,而且内容还是aaa.com网站的内容。惊不惊喜意不意外?
解决方法:
1,添加新建一个站点,绑定域名那里填你服务器的ip。
2,修改这个站点的配置文件如下:
server
{
#设置80端口不能通过ip访问。
listen 80 default_server;
server_name 127.0.0.1;
root /home/www/127.0.0.1 ;
return 444;
}
server {
#设置443端口如果站点没有启用ssl直接返回444状态码。
listen 443 default_server;
server_name _ ;
ssl on;
#注意修改以下部分内容,把路径换成你服务器上已存在的证书。
ssl_certificate /www/server/panel/ssl/certificate.pem;
ssl_certificate_key /www/server/panel/ssl/privateKey.pem;
#证书部分结束
return 444;
}
其中server_name 127.0.0.1中的127.0.0.1要修改成你网站ip,另外ssl_certificate /www/server/panel/vhost/cert/xxx/fullchain.pem和ssl_certificate_key /www/server/panel/vhost/cert/xxx/privkey.pem这两个文件要换成你网站已经存在的https的证书就可以了。