很多站长为了节约资金,会在同一个服务器内搭建多个站点,这时会用到多个建站程序,有的支持SSL证书,有的不支持,那问题就来了。
问题描述:
主站A为:http://www.xx.com,未开启SSL。
主站B为:https://www.bb.com,开启SSL。
主站C为:https://cc.com,开启SSL
当主站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; } } |