首页 > 解决方案 > AWS IOT - RegisterThing 失败 - InvalidCertificateOwnershipToken

问题描述

这是一个真正的挑战。到目前为止,在嵌入式设备上的 Fleet 配置中,我在所有方面都取得了成功。我已经订阅并发布了主题并收到了新的证书和密钥。但是,当我拿到给我的 certificateOwnershipToken 并尝试触发 DeviceRegistration 时,我得到:

{"statusCode":400,"errorCode":"InvalidCertificateOwnershipToken","errorMessage":"证书所有权令牌不能为空。"}

我的令牌长 466 个字符,我将它与此字符串中的其他 2 项一起发送:

{"certificateOwnershipToken":"eyF1ZXJzaW9uIjoiMjAxOTEwMjMiLCJjaXBoZXIiOiJBaURqMUdYMjBiVTUwQTFsTUV4eEJaM3ZXREU1dXZSSURoTy80cGpLS1o1VkVHdlZHQm81THNaS1VydG0zcTdoZGtVR0l1cmJZS0dLVkx2dTZNL2ViT2pkVFdIeDEwU3o3aFZPeExERkxWVlJ4OUIvL2RzcXRIeVp1WVo2RXZoU1k0L0txQ0doZ1lyRklwZGlLK05pUlNHMXlLQXJUSGJXSkNlVUxHcHRPWHJtdHJaNWJMUyt1MHFUcjNJVnlVLzNpcGZVVm1PanpmL3NCYzdSNkNyVGJPZ05Nc2xmOXdHSVRWM0tPUjd1aFFSbnZySnY0S1ZtU2hYc2REODI4K1crRE1xYnRYZGUxSXlJU29XZTVTSHh6NVh2aFF3OGl3V09FSzBwbG15Zi82dUgyeERoNjB1WS9lMD0ifQ==","parameters":{"SerialNumber":"82B910","CertificateId":"175b43a3d605f22d30821c4a920a6231978e5d846d3f2e7a15d2375d2fd5098c"}}

我的模板看起来正确,我的策略看起来正确。附加到我的模板的角色似乎满足了我的需求。如果没有更多信息,我只是不知道 AWS 是如何失败的。

有人对如何进行有想法吗?

标签: amazon-web-servicesiotesp32aws-iotprovisioning

解决方案


我发现了我的问题。在 C/C++ aws iot sdk 中——有一个数据结构,您必须在其中指定有效负载字符串和其他一些内容。其中一个数据元素是有效负载的长度,我忘记在将有效负载发送到 $aws/provisioning-templates//provision/json 主题之前设置该长度。一旦我设置了那个长度,那么提交工作并且模板被执行并且东西被创建


推荐阅读