Nginx获Qualys SSL Labs A+仍出现HTTP forwarding Plaintext警告求解
警告触发原因
这个是Qualys SSL Labs检测的常见触发场景,和你配置的HTTP→HTTPS跳转功能本身无关,核心是两个配置遗漏:
- 未监听IPv6对应端口:如果你的域名配置了AAAA(IPv6)解析记录,当前配置仅监听了IPv4的80/443端口,IPv6地址的80端口收到请求时无法触发跳转,直接返回明文错误页。
- 未处理发往HTTPS端口的明文HTTP请求:当客户端误将HTTP明文请求发送到443端口时,Nginx默认返回
400 Bad Request的明文响应,被Qualys识别为明文内容泄露触发警告。
修复方案
修改你Nginx配置对应部分即可:
- 调整80端口HTTP跳转的server块配置,新增IPv6监听和异常请求处理:
# http redirects to https server { listen 80 default_server; listen [::]:80 default_server; # 新增IPv6 80端口监听 server_name _; error_page 400 = https://$host$request_uri; # 处理无Host头的异常请求跳转 return 301 https://$host$request_uri; }
- 调整443端口HTTPS server块的配置,新增IPv6监听和明文请求跳转:
server { # server port and name listen 443 ssl http2; listen [::]:443 ssl http2; # 新增IPv6 443端口监听 error_page 497 https://$host$request_uri; # 新增:处理发往HTTPS端口的明文HTTP请求,直接跳转 # 其余原有配置保持不变 }
修改完成后执行nginx -s reload重载配置,重新运行Qualys检测即可消除警告。
内容的提问来源于stack exchange,提问作者Andrius
相关产品推荐
相关产品推荐

