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

LilyGO T-SIM-A7670E访问Azure Function App出现715握手失败错误求助

问题描述

我的LilyGO TTGO T-SIM-A7670E R2 ESP32-WROVER设备此前无故障运行超2个月,突然无法访问Azure Function App(地址:https://ikfu.azurewebsites.net/api/GetUtcTime/)。使用Arduino HttpsBuiltInGet示例程序测试时返回错误码715(Handshake failed),但访问其他服务器的API(https://www.ellerbach.net/DateHeure/)可正常获取200状态码及UTC时间。

已尝试以下排查步骤但未解决问题:

  • 更换其他运营商SIM卡
  • 更新调制解调器固件
  • 检查相关证书(DigiCert Global Root G2、Microsoft Azure RSA TLS Issuing CA 07、*.azurewebsites.net)均在有效期内
  • 测试连接自建ASP.Net Core Web API也出现相同的握手失败错误

推测2025年3月28日左右Azure网络变更可能导致该问题,但无法确认,求助排查具体原因。

排查建议
  1. 验证TLS版本兼容性
    Azure近期可能调整了TLS协议支持范围,检查设备当前使用的TLS版本(比如是否仅支持TLS 1.0/1.1,而Azure已禁用这些旧版本)。可以通过修改Arduino代码强制指定TLS 1.2或1.3进行测试:
// 在HTTPS客户端初始化时添加
client.setTLSVersion(TLSV1_2); // 或TLSV1_3
  1. 检查证书链完整性
    虽然证书本身在有效期内,但设备可能缺失中间证书。尝试将完整的证书链(根证书+中间证书)打包导入设备,而不是仅导入根证书。可从Azure SSL证书详情页导出完整链,再通过Arduino的证书加载接口注入。

  2. 测试Azure IP直连
    尝试通过Azure Function App的公网IP直接访问(绕过DNS解析),排查是否是DNS解析异常导致的握手问题。先通过nslookup ikfu.azurewebsites.net获取IP,再修改代码中的请求地址为IP,同时手动设置Host头:

client.connect("xxx.xxx.xxx.xxx", 443);
client.print(String("GET /api/GetUtcTime/ HTTP/1.1\r\n") +
             "Host: ikfu.azurewebsites.net\r\n" +
             "Connection: close\r\n\r\n");
  1. 确认调制解调器SNI支持
    Azure的*.azurewebsites.net依赖SNI(服务器名称指示)正确路由请求,部分旧调制解调器固件可能存在SNI兼容性问题。确认调制解调器是否支持SNI,且代码中是否正确设置了SNI参数。

  2. 抓包分析握手过程
    使用串口调试工具捕获调制解调器的AT指令交互日志,或通过网络抓包工具分析设备与Azure服务器之间的TLS握手数据包,定位具体的握手失败阶段(如证书验证失败、密钥交换失败等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 13:40:07