找不到401002 CA证书-SDK-Microsoft.Azure.Devices.Provisioning.Client

时间:2019-08-23 09:55:27

标签: azure-iot-hub

OS - Windows 10
.net Environment - .net core 2.1
SDK - Microsoft.Azure.Devices.Client - 1.21.0
Microsoft.Azure.Devices.Provisioning.Client - 1.4.0
Microsoft.Azure.Devices.Provisioning.Transport.Amqp - 1.1.9
Microsoft.Azure.Devices.Provisioning.Transport.Http - 1.1.6
Microsoft.Azure.Devices.Provisioning.Transport.Mqtt - 1.1.8

问题描述

我正在尝试通过azure Device Provisioning Service将模拟设备(.net核心控制台应用程序)连接到IOT集线器。这是基于x.509证书(根+中间证书)的。

我创建了确定的注册组,然后上传了根证书并完成了验证。

之后,从根证书生成了设备证书,并尝试使用以下链接中的示例代码连接到IOT集线器:

https://github.com/Azure-Samples/azure-iot-samples-csharp/tree/master/provisioning/Samples/device/X509Sample

在完成所有设置后,当我尝试连接到IOT bub时,出现以下错误,尝试了所有协议-Amqp,Http,Mqtt ...

Microsoft.Azure.Devices.Provisioning.Client.ProvisioningTransportException
  HResult=0x80131500
  Message={"errorCode":401002,"trackingId":"408d5ad7-aa7c-45a1-b19a-e4af41ccf54b","message":"CA certificate not found.","timestampUtc":"2019-08-23T09:17:53.762099Z"}
  Source=<Cannot evaluate the exception source>
  StackTrace:
<Cannot evaluate the exception stack trace>

以下是设备客户端与证书的输入:

    private static string s_idScope = "0ne00074417";
    private const string GlobalDeviceEndpoint = "global.azure-devices-provisioning.net";
    private static string s_certificateFileName = "simulateddevicecert.pfx";

安装程序中是否缺少任何导致此错误的信息?另外,Azure DPS是否公开了任何REST API来注册设备? (而不是使用Azure设备/客户端SDK)

2 个答案:

答案 0 :(得分:0)

here所示, 请将中间证书也包括在设备提供的证书链中。

可以在here中找到用于将设备注册到DPS的REST API文档。

答案 1 :(得分:0)

在我的情况下,错误401002是由用于验证设备的证书中的deviceIdCN字段不匹配引起的。