首页 > 解决方案 > 涉及负载均衡器的 IoT 设备 SSL 问题

问题描述

我有一个 IoT 设备在尝试向负载均衡器发出 HTTP/S 请求时以一致且可重现的方式出现故障。对于背景信息,以前我使用安装了 HAProxy 的 EC2 实例并直接发布到它没有问题。自从引入负载均衡器(使用新的 EC2 实例)后才出现此问题。

观察到的行为:

为了测试这一点,我让我的设备尝试每条消息 5 次,并且始终每第二条消息都因上述错误而失败。
注意:MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE 是设备引发的异常(在 try-catch 中,使用名为 urequests 的 micropython 库)。

根据我的研究,我在论坛帖子中找到了此信息:

MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE 当另一方(在您的情况下为服务器)发送致命警报消息时返回。

我的负载均衡器设置了以下侦听器:
HTTP:80
HTTPS:443(使用 ACM 的 SSL 证书,成功链接到我的域)
在此处输入图像描述

我的新旧 EC2 实例都在同一个安全组中。我的负载均衡器指向以下目标组:
在此处输入图像描述

两个目标组都具有与注册目标相同的实例,唯一的区别是端口(分别为 80/443)

为了进一步调试,我从负载均衡器下载了日志文件并注意到以下内容:

http 2021-11-07T23:20:23.249994Z app/ThingsboardLoadBalancer/9de65d9a752e8a5b 108.162.249.243:40522 10.0.1.248:80 0.000 0.034 0.000 200 200 395 1267 "POST http://${MY_DOMAIN}:80/api/v1/VipOCNGjV7Za9sxcO3fM/telemetry HTTP/1.1" "-" - - arn:aws:elasticloadbalancing:ap-southeast-2:950354564533:targetgroup/ThingsboardTargetGroup/8cd562ac863ffa19 "Root=1-61885f37-02aa15a1435e59493b9a6e8c" "-" "-" 0 2021-11-07T23:20:23.215000Z "forward" "-" "-" "10.0.1.248:80" "200" "-" "-"
http 2021-11-07T23:20:30.717750Z app/ThingsboardLoadBalancer/9de65d9a752e8a5b 108.162.249.243:40522 10.0.1.248:443 0.001 0.001 -1 502 - 440 1199 "POST http://${MY_DOMAIN:80/api/v1/VipOCNGjV7Za9sxcO3fM/telemetry HTTP/1.1" "-" - - arn:aws:elasticloadbalancing:ap-southeast-2:950354564533:targetgroup/ThingsboardTargetGroup/8cd562ac863ffa19 "Root=1-61885f3e-50c051b040a5a47071dcb33c" "-" "-" 0 2021-11-07T23:20:30.715000Z "forward" "-" "-" "10.0.1.248:443" "-" "-" "-"

上述两个 URL 都发布到端口 80 上的 http 端点(这是问题吗?)并转发到指定的目标组(我认为)。使用端口 80 转发到我的 ec2 的那个得到响应 200,而转发到端口 443 的那个没有得到响应,这是我理解每行末尾数字的最佳猜测。

注意:我使用的域具有有效的 HTTPS 证书。

我对如何进一步进步感到茫然。我很久以前就用尽了我的 AWS 知识,现在我正在努力尝试我不完全理解的解决方案。如果有人可以就下一步看什么或在哪里发布更好的建议提供建议,将不胜感激。

标签: amazon-web-servicessslamazon-ec2thingsboard

解决方案


推荐阅读