最近发现nginx升级到1.24.0之后遇到警告:nginx: [warn] protocol options redefined for 0.0.0.0:443

查阅官方更新发现:http://nginx.org/en/CHANGES-1.24

image-20240319171849563
1
2
3
意思是:
现在默认启用 TLSv1.3 协议。
如果重新定义侦听套接字的协议参数,nginx会发出警告。

解决办法:

所有443端口都要一致配置,以下为例,都要同样配置

端口处配置ssl http2

协议处加上TLSv1.3

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
server {
         listen         80 default_server;
         listen         [::]:80 default_server;
         listen 443 default_server ssl http2;
         listen [::]:443 default_server ssl http2;
 
         server_name _;
 
         set $empty "";
         ssl_ciphers aNULL;
         ssl_certificate data:$empty;
         ssl_certificate_key data:$empty;
 
         return 444;
}
1
2
listen       443 ssl http2;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;