2

我正在按照本教程使用 Node.js SDKRaspberry Pi进行连接。AWS IoT我看到以下内容vim ~/.aws/credentials

[default]
aws_access_key_id = SOMETHING
aws_secret_access_key = SOMETHINGELSE

当我输入命令时,aws iot describe-endpoint我得到以下响应:

{
    "endpointAddress": "A34SXNTM6AT7XH.iot.us-west-2.amazonaws.com"
}

但是,当我浏览到该 URL:https ://a34sxntm6at7xh.iot.us-west-2.amazonaws.com/ 时, 我收到以下错误:

Missing Authentication Token

在此处输入图像描述

知道什么可能是错的,如何解决?

在此处输入图像描述

在此处输入图像描述

这是文件~/certs夹中的文件:

pi@raspberrypi:~/certs $ ls
certificate.pem.crt  private.pem.key  public.pem.key  root-CA.pem
4

3 回答 3

2

莫娜,

您的自定义端点响应两种协议:MQTT 和 HTTPS。但是,它不提供任何 Web 内容,因此不能在浏览器中用作站点 URL。您从中获得的“endpointAddress”aws iot describe-endpoint将插入您在链接的 Raspberry Pi 示例中使用的 Node.js 设备 SDK(否https://)。

您还可以通过使用 AWS 签名版本 4 对请求进行签名来使用端点的 HTTPS 版本与设备影子交互。更多信息请参见:http: //docs.aws.amazon.com/iot/latest/developerguide/thing-shadow- rest-api.html和这里:http ://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html虽然您可能会通过使用 AWS CLI 或 AWS SDK 变得更快执行这样的操作。

瑞安@AWS

于 2016-03-06T22:26:28.827 回答
1

默认情况下,示例程序将在当前目录中查找您的证书和私钥文件,但如果您愿意,也可以使用“-f”选项指定另一个目录。至于您在尝试从浏览器访问端点时注意到的“缺少身份验证令牌”消息,您可以放心地忽略它。

于 2016-03-08T01:12:33.557 回答
1

如果您使用“TLS 相互身份验证”,则需要连接端口 8443,因此在您的示例中,它将是https://a34sxntm6at7xh.iot.us-west-2.amazonaws.com:8443/things/<thing_name>/shadow

于 2017-06-27T18:34:02.303 回答