1

我试图使用 SIM 800 模块分别向 AWS 云发送和获取一些 JSON 数据。我最初是通过终端 UART 软件直接从我的 PC 上试用它并手动输入 AT 命令。

对于 Google 和 Quora 等网站, HTTP GET 在 SSL ( AT+HTTPSSL=1) 上运行良好,例如,它们返回<html>数据。

1) 我首先考虑使用此处链接中提到的 HTTP 通过 AWS IoT 路由。但它不仅需要 HTTP SSL 的单个证书,还需要根 CA 证书和私钥,我想除了使用 SIM 800 上的 AT 命令的单个证书之外,不可能添加这些。如果有办法这样做,那么任何人都可以详细说明它的流程和命令吗?

2)然后我尝试走API路线。我在 AWS 中创建了一个 API 网关,该网关与一些云逻辑内部链接。我实际上想对 AWS 云进行 JSON 数据的 HTTP POST(技术上是 https),但我为 HTTP GET 创建了一个测试 API 网关,它添加了在 URL 中写入的操作数并以 JSON 的形式发回数据。然而,通过 SSL 的 HTTP GET 到类似 URL 的https://XXXX.execute-api.us-west-2.amazonaws.com/XXX/calc/4/2/+失败并带有606 error code. 在 SIM 800 606 错误代码的 SSL 应用说明中表示

“具有致命级别的 SSL 警报消息导致连接立即终止”

我在这里做错了什么?

此外,我也在https://httpbin.org/ip上尝试了基于 SSL 的 HTTP GET并得到了相同的 606 错误。是因为 SIM 800 需要一个<html>而不是它得到 JSON 还是其他什么?

对于我通过终端软件从 PC 上的 SIM 800 上的 AT 命令例程,我通常会这样做(对于 API 网关方法):

AT+SAPBR=3,1,"CONTYPE","GPRS"
AT+SAPBR=3,1,"APN","XXXX"
AT+SAPBR=1,1
AT+HTTPINIT
AT+HTTPSSL=1
AT+HTTPPARA="CID",1
AT+HTTPPARA="URL","https://XXXX.execute-api.us-west-2.amazonaws.com/XXX/calc/4/2/+"
AT+HTTPACTION=0

提前致谢。

4

4 回答 4

3

我有同样的问题。AWS 要求TLS1.2,而 Simcom 只允许TLS1.0

于 2018-05-11T08:12:55.507 回答
1

Microsoft Azure 最近升级了 TLS 要求,其效果是“如果客户端尝试在这种情况下协商 TLS 1.0,请求将失败并重置连接”。这就解释了为什么我的应用程序现在失败了,因为 SIM800 模块只支持 TLS 1.0。

AWS 可能也做了同样的事情。似乎正在进行弃用 TLS 1.0 的举措,根据SSL 和 TLS,6 月 30 日左右有什么大不了的?如果您想声明 PCI 合规性,2018 年 6 月 30 日是不支持 TLS 1.0 的截止日期。

于 2018-06-08T08:15:07.807 回答
1

方法是方法 2,即 API 网关。我认为不可能通过方法 1 即 AWS IoT 来做到这一点。

@mich@patrick-fischer的原因是正确的,我也怀疑相同,但不知道解决方案。我和我的团队联系了 AWS 支持,他们告诉了我们解决方案。

显然,您是通过 AWS CloudFront 完成的。您必须使用 API 网关的链接(在我的情况下https://XXXX.execute-api.us-west-2.amazonaws.com/XXX/calc/4/2/+)创建 CloudFront 分配。创建此发行版时,您可以提及是否接受传入的 HTTP、HTTPS 或两者。

在其中一个部分(不记得该部分的名称)中,它允许您提及允许来自哪个 TLS/SSL 版本的传入请求。对于 SIM 800,TLSv1.0 是必须在 CloudFront 分配中设置的最高支持版本。

CloudFront 所做的是允许来自具有特定参数的源的流量,例如 HTTP 版本、TLS 版本等。

于 2018-07-03T10:56:06.293 回答
0

我正在尝试在AWS Api Gateway中生成一个自定义域并选择TLS 1.0,以激活您需要AWS ACM 证书和AWS Route S3中的 DNS 确认(需要一些时间来激活),这里有一些信息:https:// vintage-kitchen.com/es/faq/faq-how-long-does-aws-certificate-manager-take/(此选项在此处可视化:https ://i.stack.imgur.com/RVO7y.png ),例如,您可以通过 GPRS从AT 命令向AWS Lambda执行 HTTP POST 请求。

于 2022-01-29T19:27:53.493 回答