问题描述:在配置SSL之后,没有配置SSL的域名使用HTTP访问会走HTTPS请求,并且返回400报错,报错如下
400 Bad Request
The plain HTTP request was sent to HTTPS port. Sorry for the inconvenience.
Please report this message and include the following information to us.
Thank you very much!
环境描述:
我使用的是tengine-2.1.2,主配置文件加上如下参数include /opt/nginx/conf.d/*.conf;
比如域名有:pay-m.goywzl.com与pay.m.goywzl.com和callback.m.zhaopin.com与callback-m.goywzl.com
配置文件为:文件名在前,server_name在括号中
pay-m.conf(pay-m.goywzl.com)
pay.m.conf(pay.m.goywzl.com)
callback.m.conf(callback.m.goywzl.com)
callback-m.conf(callback-m.goywzl.com)
分别在pay-m.conf与callback-m.conf下添加如下配置
listen 443 ssl;
ssl on;
ssl_certificate /data/goywzl-certificate/goywzl.com.crt;
ssl_certificate_key /data/goywzl.com-certificate/goywzl.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers XXXXXXXXXXXXXXXXXXXXXXX
其它的配置与普通配置文件并没有差别,但是在使用http访问pay.m.goywzl.com等本tenginx所在的所有域名的时候,就会出现上面的错误,最后发现一个原因,只要我把配置文件名callback-m.conf随便改成不是callback-m这样的名字,如(callbackm.conf)里面的内容不变,就不会在出现上面的报错,并且从网上查到一些文档,如果我继续使用callback-m.conf这个名字,把配置文件内容"ssl on "这一行注释掉,就也恢复了正常200状态,但是其它的配置文件使用"SSL"配置是完全没问题的,只有这个配置文件名字有问题,实在想不出问题的原因,所以在这里请教各位,希望能知道是为什么会出现这个情况?