如何使用X509认证IoT设备

时间:2019-01-11 00:18:33

标签: c# uwp iot azure-iot-hub x509certificate2

我正在遵循this关于“使用X.509证书身份验证的Azure IoT中心”的教程。样例控制台应用程序运行良好,我能够将消息发送到现有的IoThub。但是,当我尝试使用相同的代码,相同的证书和同一设备从我的UWP连接现有的IoThub时,我会不断收到非特定的异常消息=“来自HRESULT的异常:0x80072F0C”。我想知道使用X.509证书与IoT中心连接时,UWP和控制台应用程序之间的基本区别是什么。

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindByThumbprint, "thumbprint", false);
if (certs.Count > 0 && certs[0].HasPrivateKey)
{
    var auth = new DeviceAuthenticationWithX509Certificate("deviceId", "X509Certificate2");
    deviceClient = DeviceClient.Create("***.azure-devices.net", auth, TransportType.Amqp);

    var message = new Message(Encoding.ASCII.GetBytes("Hello"));
    await deviceClient.SendEventAsync(message);
    outMessage = await ReceiveCloudMessageAsync();
}
else
{
     throw new Exception("cert not found");
}

我能够获得自签名证书并具有私钥,但是在'SendEventAsync'处引发了异常。

0 个答案:

没有答案