amazon-web-services - AWS IOT - RegisterThing 失败 - InvalidCertificateOwnershipToken
问题描述
这是一个真正的挑战。到目前为止,在嵌入式设备上的 Fleet 配置中,我在所有方面都取得了成功。我已经订阅并发布了主题并收到了新的证书和密钥。但是,当我拿到给我的 certificateOwnershipToken 并尝试触发 DeviceRegistration 时,我得到:
{"statusCode":400,"errorCode":"InvalidCertificateOwnershipToken","errorMessage":"证书所有权令牌不能为空。"}
我的令牌长 466 个字符,我将它与此字符串中的其他 2 项一起发送:
{"certificateOwnershipToken":"eyF1ZXJzaW9uIjoiMjAxOTEwMjMiLCJjaXBoZXIiOiJBaURqMUdYMjBiVTUwQTFsTUV4eEJaM3ZXREU1dXZSSURoTy80cGpLS1o1VkVHdlZHQm81THNaS1VydG0zcTdoZGtVR0l1cmJZS0dLVkx2dTZNL2ViT2pkVFdIeDEwU3o3aFZPeExERkxWVlJ4OUIvL2RzcXRIeVp1WVo2RXZoU1k0L0txQ0doZ1lyRklwZGlLK05pUlNHMXlLQXJUSGJXSkNlVUxHcHRPWHJtdHJaNWJMUyt1MHFUcjNJVnlVLzNpcGZVVm1PanpmL3NCYzdSNkNyVGJPZ05Nc2xmOXdHSVRWM0tPUjd1aFFSbnZySnY0S1ZtU2hYc2REODI4K1crRE1xYnRYZGUxSXlJU29XZTVTSHh6NVh2aFF3OGl3V09FSzBwbG15Zi82dUgyeERoNjB1WS9lMD0ifQ==","parameters":{"SerialNumber":"82B910","CertificateId":"175b43a3d605f22d30821c4a920a6231978e5d846d3f2e7a15d2375d2fd5098c"}}
我的模板看起来正确,我的策略看起来正确。附加到我的模板的角色似乎满足了我的需求。如果没有更多信息,我只是不知道 AWS 是如何失败的。
有人对如何进行有想法吗?
解决方案
我发现了我的问题。在 C/C++ aws iot sdk 中——有一个数据结构,您必须在其中指定有效负载字符串和其他一些内容。其中一个数据元素是有效负载的长度,我忘记在将有效负载发送到 $aws/provisioning-templates//provision/json 主题之前设置该长度。一旦我设置了那个长度,那么提交工作并且模板被执行并且东西被创建
推荐阅读
- python-3.x - 如何打开仅用于在 python 3 中追加的文件
- python - 在 Django 中的视图之间发送数据
- html - Laravel 5.8 显示另一个表的数据,如连接
- r - R GLM 函数省略数据
- active-directory - 收集 AAD 应用注册权限
- python - 熊猫:如何删除#DIV/0!熊猫数据框中“新”列中的NA值?
- python - 有没有办法将嵌套字典的值作为 numpy 数组转换为 pandas 数据帧
- jestjs - 用 jest.mock 模拟 aws-sdk-sns
- ios13 - 检查联系人 swift 5 的多个 postalAddresses
- .net-core - 在 .NET Core 3.1 上使用 DotNetCoreCLI pack 命令的 Azure 管道出现错误