最后更新于

nginx: [warn] protocol options redefined for 0.0.0.0:443问题解决


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

📋 问题分析

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

nginx版本更新说明

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

✅ 解决办法

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

  • 端口处配置 ssl http2
  • 协议处加上 TLSv1.3

配置示例1

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;
}

配置示例2

listen       443 ssl http2;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

🔑 关键要点

  • 确保所有443端口的配置保持一致
  • 在ssl_protocols中明确包含TLSv1.3
  • 避免在不同server块中重复定义不同的协议选项

这样配置后,警告信息就会消失,nginx可以正常运行。