1

nginx版本1.18.0,
需要配置ssl和http2,一开始的配置如下:

server {
    listen 80;
    listen 443 http2;

    server_name xxx.com;

    proxy_read_timeout 600;
    
    # ssl
    ssl_certificate   /xxx.pem;
    ssl_certificate_key  /xxx.key;

    location / {
        proxy_pass http://xxxx;
    }
}

想当然的任务开了http2也就自动开ssl了,但事实上该配置无法通过https访问,浏览器报错:ERR_SSL_PROTOCOL_ERROR

此站点的连接不安全
=========

**????** 发送了无效的响应。

ERR_SSL_PROTOCOL_ERROR

listen 443 http2;改为listen 443 ssl http2;即可,如下:

server {
    listen 80;
    listen 443 ssl http2;   # 重点。。

    server_name xxx.com;

    proxy_read_timeout 600;

    # ssl
    ssl_certificate   /xxx.pem;
    ssl_certificate_key  /xxx.key;

    location / {
        proxy_pass http://xxxx;
    }
}

如果是低版本nginx的话加“ssl on;”生效。


RobinTang
3.9k 声望37 粉丝