https返回400_http请求被转成https请求并报400错误

配置SSL后,HTTP访问转向HTTPS并返回400错误。问题出现在配置文件名callback-m.conf,改名或注释掉'ssl on'可解决。可能原因与配置文件名和内部解析有关,但具体原因不明。其他SSL配置文件不受影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:在配置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"配置是完全没问题的,只有这个配置文件名字有问题,实在想不出问题的原因,所以在这里请教各位,希望能知道是为什么会出现这个情况?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值