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

调用HTTPS API却收到"Client sent an HTTP request to an HTTPS server"错误求助

排查思路:"Client sent an HTTP request to an HTTPS server." 错误

从你提供的curl verbose日志来看,客户端已完成TLSv1.3握手,且通过HTTP/2发送了合规的HTTPS请求,因此问题大概率出在服务器或中间网络层的配置上,以下是具体排查方向:

  • 检查服务器端口监听配置
    确认服务器443端口是否被错误配置为监听HTTP(非加密)请求而非HTTPS。例如Nginx/Apache的server块是否写成listen 443;(默认HTTP)而非listen 443 ssl;(HTTPS);或是后端服务的443端口实际只处理HTTP流量,却收到了经过TLS加密的请求。

  • 排查中间代理/负载均衡的配置异常
    若请求经过CDN、负载均衡(如F5、Nginx反向代理),检查这些节点是否错误地将HTTPS请求转换为HTTP请求后转发至后端,而后端443端口仅支持HTTPS,导致后端判定收到了HTTP请求到HTTPS端口。

  • 验证HTTP/2协议兼容性
    部分服务器框架对HTTP/2的处理存在问题,尝试强制curl使用HTTP/1.1发送请求,观察是否能正常响应:

    curl -vv --http1.1 --location 'https://test.wenzhi.com:443/operation/v1/test?Count=1&Az=xxx' \
    --header 'Authorization: Basic xxxxxx='
    

    若HTTP/1.1请求正常,说明服务器的HTTP/2配置存在缺陷,比如未正确识别HTTP/2的:scheme头。

  • 确认DNS解析与目标服务匹配
    验证test.wenzhi.com解析的10.23.24.73确实是目标HTTPS服务的IP,而非仅提供HTTP服务的节点。可直接用IP加Host头测试,排除DNS问题:

    curl -vv --location 'https://10.23.24.73:443/operation/v1/test?Count=1&Az=xxx' \
    --header 'Host: test.wenzhi.com' \
    --header 'Authorization: Basic xxxxxx='
    
  • 检查SSL/TLS终止链路配置
    若使用负载均衡层终止TLS,确认后端服务器是否被配置为接收HTTP流量,但负载均衡却将终止后的HTTP流量发送到了后端的HTTPS端口,导致后端误判请求类型。

内容的提问来源于stack exchange,提问作者张问之

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:55:38