我正在尝试使用 IoT SDK 与 DPS 通信,然后与 IoT Hub 通信。
当我加载一个有效的证书 PEM 文件时,它在如下所示的调试窗口中看起来是正确的:
加载证书后,我无法在 IoT SDK 中使用它,出现以下错误:
[注意我已经将 DPS 配置为信任 ca.cert.pem 并创建了一个注册组。
我的证书是v1,如下图:
我正在使用来自 OpenSSL 的一个非常简单的 CA:
openssl genrsa -aes256 -out ca.key.pem 4096
openssl req -key ca.key.pem -new -x509 -days 3650 -sha256 -out ca.cert.pem
openssl req -nodes -new -subj /CN=device4 -sha256 -out verify.csr -keyout private.pem
openssl x509 -req -in verify.csr -CA ca.cert.pem -CAkey ca.key.pem -CAcreateserial -out public.pem -days 180 -sha256
这是我正在使用的代码:
certificate = X509Certificate2.CreateFromPemFile(publicKeyFileName, privateKeyFileName);
SecurityProviderX509Certificate securityProvider = new SecurityProviderX509Certificate(certificate);
ProvisioningDeviceClient = ProvisioningDeviceClient.Create(DPSURL, DPSScopeId, securityProvider, provisioningTransportHandler);
DeviceRegistrationResult registrationResult = ProvisioningDeviceClient.RegisterAsync().Result;