服务器多站点防止http加s链接跨站

很多站长为了节约资金,会在同一个服务器内搭建多个站点,这时会用到多个建站程序,有的支持SSL证书,有的不支持,那问题就来了。

问题描述:

主站A为:http://www.xx.com,未开启SSL。
主站B为:https://www.bb.com,开启SSL。
主站C为:https://cc.com,开启SSL

《服务器多站点防止http加s链接跨站》

当主站A:http://www.xx.com链接加个s,变成https://www.xx.com后,会显示主站B或者主站C的内容。

问题测试:

国内知名面板:宝塔,oneinstack,lnmp等一键PHP环境搭建脚本,全部都会出现这个问题。

问题解决:

服务器内的网站全部开启SSL,其他方法未测试。

跳转404方法

oneinstack新建一个163.com的站点,不要自动签署le证书,手动配置,之后添加修改conf文件,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
server {
  listen 80 default_server;
  listen 443 ssl http2  ;
  ssl_certificate /usr/local/nginx/conf/ssl/163.com.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/163.com.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;

  server_name _;
  return       404;
  access_log off;



 
 
  location / {
    try_files $uri @apache;
  }
  location @apache {
    proxy_pass http://127.0.0.1:88;
    include proxy.conf;
  }
  location ~ .*\.(php|php5|cgi|pl)?$ {
    proxy_pass http://127.0.0.1:88;
    include proxy.conf;
  }
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
    expires 30d;
    access_log off;
  }
  location ~ .*\.(js|css)?$ {
    expires 7d;
    access_log off;
  }
  location ~ /\.ht {
    deny all;
  }
}
点赞

发表评论

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