关于nginx启用HTTP2后出现ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY错误的解决方案

问题

为了提高网站访问速度,在nginx中启用http2协议,配置完成后通过浏览器访问站点无法显示页面,提示“ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY”。
nginx部分配置如下:

http {
    include       mime.types;
    default_type  application/octet-stream;
    server_tokens off;#隐藏版本号

    sendfile        on;
    tcp_nopush     on;

    keepalive_timeout  100;

    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    #gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png
;
    gzip_vary off;
    gzip_disable "MSIE [1-6]\.";

    server {
        listen       80;
        listen       443 ssl http2;
        server_name  pre.test.com;
        client_max_body_size 100m;

        ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
        ssl_certificate /etc/ssl/pre/fullchain.crt;
        ssl_certificate_key /etc/ssl/pre/private.pem;
        ssl_ciphers ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;#加密套件组
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        ssl_prefer_server_ciphers on;

        if ($server_port = 80) {
                rewrite ^(.*)$ https://$host$1 permanent;
        }

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location /fxld {
            proxy_pass  http://127.0.0.1:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            proxy_next_upstream off;
            proxy_connect_timeout 30;
            proxy_read_timeout 300;
            proxy_send_timeout 300;
        }
    }

}

问题分析

根据错误提示“ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY”,可以看出是增加的HTTP2导致的问题,尝试删除“listen 443 ssl http2;”中的http2,重启nginx后可以正常访问网站。错误提示安全性不足,所以怀疑是ssl的加密算法存在问题。

解决方案

ssl_ciphers参数用于设置ssl协议的加密套件组,使用不同的加密套件组,生成的密码强度也不一样。尝试更换加密套件组,选择一个加密强度更大的加密套件组:

ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

修改后,重新启用http2协议,然后重启nginx,访问网站发现页面可以正常显示,查看请求明细可以看出HTTP2协议已经生效。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值