Loading
0

解决Nginx“The plain HTTP request was sent to HTTPS port”报错方法

301免备案跳转微信公众号
腾讯云服务器大促销。
华为服务器


问题现象:Nginx站点中域名部署好了SSL证书,使用https://www.zfcdn.xyz方式访问出现报错“400 Bad Request:The plain HTTP request was sent to HTTPS port”检查证书配置和端口监听等没有发现问题,最终通过分析nginx配置文件规则解决了这个问题。

问题原因:报错字面理解意思为“ 普通HTTP请求已发送到HTTPS端口 ”一般情况是nginx部署证书的规则中有使用“ssl on;”参数。
解决方法:
1、分析nginx站点ssl证书部署规则,原本的规则如下

server {
    listen       443;
    server_name www.zfcdn.xyz;
    charset UTF-8;
    ssl on;
    ssl_certificate   /ssl/www.zfcdn.xyz.pem;
    ssl_certificate_key  /ssl/www.zfcdn.xyz.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 www.zfcdn.xyz;
    charset UTF-8;
    #ssl on;
    ssl_certificate   /ssl/www.zfcdn.xyz.pem;
    ssl_certificate_key  /ssl/www.zfcdn.xyz.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服务使其生效。
 

301免备案跳转微信公众号
华为服务器
腾讯云服务器大促销。

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://www.zfcdn.xyz/showinfo-7-36224-0.html
亲爱的:被墙域名跳转TG:@qianhenetwork QQ:851617266,可否收藏+评论+分享呢?
上一篇:精简实用最全的Nginx学习资料(安装,伪静态,负载均衡,正反向代理,正则语法)
下一篇:Nginx禁止http/https及IP被恶意解析以及https窜站方法