400 Bad Request:The plain HTTP request was sent to HTTPS port

解决方法:
1、分析nginx站点ssl证书部署规则,原本的规则如下

server {
    listen       443;
    server_name blog.tag.gg;
    charset UTF-8;
    ssl on;
    ssl_certificate   /ssl/blog.tag.gg.pem;
    ssl_certificate_key  /ssl/blog.tag.gg.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

分析上面规则看有启用“ ssl on;”监听设置规则为“ listen   443;”
2、将“ ssl on;”注释掉,将 listen   443;”修改为 “listen       443 ssl;”
修改后的规则如下:

server {
    listen       443 ssl;
    server_name blog.tag.gg;
    charset UTF-8;
    #ssl on;
    ssl_certificate   /ssl/blog.tag.gg.pem;
    ssl_certificate_key  /ssl/blog.tag.gg.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

修改后记得重载nginx服务使其生效。

==============================

试了上述的方法还是不行,最后检查看看在nginx/vhost目录下有没有别的 xxxhost.conf,真发现一个xxxhost.conf文件里面的可能还是有ssl on在干扰,删除后 nginx -s reload,终于可以了

posted @ 2025-08-11 01:11  奥雷连诺  阅读(334)  评论(0)    收藏  举报