我按照node.js教程通过Azure DPS(设备配置服务)@ https://docs.microsoft.com/en-us/azure/iot-dps/quick-create-simulated-device-x509-node注册设备。
对于单个设备注册,它已成功,但当我尝试通过注册组注册设备时,它会失败。
我使用"create_test-cert.js root"
生成我的根证书和
create_test-cert.js verification --ca {rootcertificate_cert
.pem} --key {rootcertificate_key.pem} --nonce {verificationKey}
验证。
我还used create_test-cert.js device {leafcertificate} {rootcertificate-name}
来创建设备证书。
最后,我使用register_x509.js文件将我的设备注册到Azure。执行此文件我有以下错误
azure-iot-provisioning-device:X509Registration registrationId: first +0ms
azure-iot-provisioning-device:PollingStateMachine register called for registrationId "first" +0ms
azure-iot-provisioning-device:PollingStateMachine completed transition from disconnected to sendingRegistrationRequest +0ms
azure-iot-provisioning-device-http:Http submitting PUT for first to /0ne00015676/registrations/first/register?api-version=2017-11-15 +0ms
azure-iot-provisioning-device-http:Http {"registrationId":"first"} +0ms
azure-iot-provisioning-device-http:Http error executing PUT: UnauthorizedError: Error: {"errorCode":401002,"trackingId":"e6b9c185-64c4-4535-8d23-a7625dd3e011","message":"Unauthorized","timestampUtc":"2018-04-23T12:21:56.1390465Z"} +353ms
错误代码“401002是IotHubUnauthorizedAccess”
感谢
答案 0 :(得分:1)
感谢Michael,我意识到问题出在文档中。目前还不清楚注册是叶子的registarationid而不是父证书的注册
“将注册ID替换为上一节中提到的注册ID。”应替换为 “将注册ID替换为先前生成的叶子的注册ID”
答案 1 :(得分:0)
我已使用最新版SDK测试过。有用。以下是我的操作步骤。
<强>更新强>
节点create_test_cert.js root
添加名为&#34; root&#34;的证书在证书中,并上传根ca文件(testRootCert_cert.pem)。
生成验证码并使用此命令创建验证ca文件,上传verify_cert.pem文件,状态&#34; root&#34;将被&#34;验证&#34;:
节点create_test_cert.js验证--ca testRootCert_cert.pem --key testRootCert_key.pem --nonce {验证码}
节点create_enrollment_group.js&#34;&#34; &#34; testRootCert_cert.pem&#34;
节点create_test_cert.js设备device01 testRootCert
provisioning host
,id scope
,registration id
(此处为&#39;首先命名),cert filename
和key filename
。请参阅此document。var provisioningHost =&#39; {您的配置主机}&#39 ;; var idScope =&#39; {your id scope}&#39 ;; var registrationId =&#39; device01&#39 ;; var deviceCert = { cert:fs.readFileSync(&#39; device01_cert.pem&#39;)。toString(), key:fs.readFileSync(&#39; device01_key.pem&#39;)。toString() };
答案 2 :(得分:0)