无证书的域名通过https访问,串访到有证书的域名的解决方法
今天遇到一件奇怪的事,刚买的服务器,新安装的宝塔面板,添加了几个网站。通过查看日志发现刚上线的新站出现了很多蜘蛛访问日志,而且访问的是其他无证书的域名,内容却是新站的。发生了串站。
其中新网站域名zwza.cn是有证书的。结果发现其他所有无证书的域名通过https来访问都会串访到有证书的本站。
应该是无证书的网站没有监听443端口,然后这个请求就被其它监听443端口的项目给接管了,并且还是有顺序的接管。
于是我新建了一个二级域名当主站,安装上证书。该站的首页和404页都加上一段JS代码,用于判断网址并跳转到http开头的正常的网址。代码如下:
<script> hrefValue = window.location.href; //获取当前页面的地址 if (window.location.href.indexOf("abc") > -1) { window.location.href="http://abc.com/"; } if (window.location.href.indexOf("123") > -1) { window.location.href="http://123.com/"; } </script>
这代码只适合服务器网站少的情况,如果网站比较多就比较麻烦了。需要对代码进行优化。
或者直接把把主站文件删除。没证书的网站用https就打不开了。
整半天才发现,宝塔有一键设置https防串站的功能。