You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx可正常监听HTTP但HTTPS无法访问,求助排查

排查步骤

1. 检查Cloudflare SSL/TLS模式

Cloudflare与源站的加密不匹配是常见诱因:

  • 登录Cloudflare控制台,进入对应域名的「SSL/TLS」→「概述」页面
  • 若当前为「严格」模式,临时切换为「灵活」模式测试:该模式下Cloudflare对外用HTTPS,对内以HTTP连接源站,若能正常访问,说明源站SSL配置存在问题
  • 若需保持「严格」模式,必须确保源站SSL证书是受信任的有效证书(不能是自签证书,除非Cloudflare已添加自定义根证书),且证书包含完整的链式文件

2. 验证Nginx 443端口监听状态

请求未到达Nginx才会无日志输出,先确认Nginx是否正常监听443端口:

  • 执行命令检查监听端口:
    ss -tulpn | grep nginx
    
  • 输出需包含 0.0.0.0:443 或 :::443,否则说明Nginx未正确加载443端口配置
  • 检查Nginx配置语法:
    nginx -t
    
  • 若存在语法错误,修复后重载配置:
    nginx -s reload
    

3. 检查防火墙/安全组规则

服务器或云服务商的安全组可能拦截了443端口流量:

  • 检查服务器本地防火墙(以ufw为例):
    ufw status
    
    确保存在 443/tcp ALLOW 规则,无规则则添加:
    ufw allow 443/tcp
    
  • 检查云服务商(阿里云、AWS等)的安全组配置,确认入站规则允许443端口的TCP流量

4. 确认Cloudflare代理状态与DNS设置

  • 进入Cloudflare「DNS」页面,确认api.xxxx.io的记录为橙色云朵(开启代理),灰色云朵表示流量不经过Cloudflare,直接访问源站
  • 可临时关闭Cloudflare代理(切换为灰色云朵),直接用源站IP访问https://[源站IP],若仍无法访问,说明问题出在源站Nginx或服务器配置

5. 检查Nginx SSL证书有效性与权限

  • 确认证书文件路径正确:/etc/nginx/ssl/public.crt 和 /etc/nginx/ssl/private.key 确实存在
  • 调整证书文件权限,确保Nginx进程用户(通常为www-data或nginx)可读取:
    chown -R nginx:nginx /etc/nginx/ssl/
    chmod 600 /etc/nginx/ssl/private.key
    chmod 644 /etc/nginx/ssl/public.crt
    
  • 本地测试证书有效性:
    openssl s_client -connect localhost:443
    
    查看输出中是否有「Verify return code: 0 (ok)」,若出现错误,说明证书本身无效或缺少链式证书

内容的提问来源于stack exchange,提问作者Salih Burak Çoşkun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 05:27:38