RPi上的UWP-尝试设置到Azure-如何获取X.509证书
我正在使用一个RPi/UWP程序,该程序在没有X.509证书的情况下运行良好。 如果我手动设置连接,我连接Azure IoT hub不会有问题,但由于我们打算在100年代之前(如果不是数千年的话)提供这些连接,显然这不起作用 我已经看过了使用资源调配服务的代码示例,但它们都在仿真中。 查看代码,您必须加载X.509证书RPi上的UWP-尝试设置到Azure-如何获取X.509证书,azure,uwp,raspberry-pi,provisioning,windows-10-iot-core,Azure,Uwp,Raspberry Pi,Provisioning,Windows 10 Iot Core,我正在使用一个RPi/UWP程序,该程序在没有X.509证书的情况下运行良好。 如果我手动设置连接,我连接Azure IoT hub不会有问题,但由于我们打算在100年代之前(如果不是数千年的话)提供这些连接,显然这不起作用 我已经看过了使用资源调配服务的代码示例,但它们都在仿真中。 查看代码,您必须加载X.509证书 certificateCollection.Import(s_certificateFileName, certificatePassword, X509KeyS
certificateCollection.Import(s_certificateFileName, certificatePassword, X509KeyStorageFlags.UserKeySet);
这就是我迷路的地方——RPi上要加载的证书在哪里?
基本上,我想我知道如何在一个普通的Win10应用程序中做到这一点,但当你在RPi a 3B上使用UWP时,由于3B+不受支持-可能必须切换到Core。任何人都有一些示例代码,或者可以为我指出正确的方向?这提供了UWP应用程序可用的加密功能概述。
您可以生成证书文件,然后将其复制或导入设备。如果将证书文件复制到设备,则需要添加将文件访问到UWP应用程序的功能。请在MSDN论坛中参考此内容。以下代码可用于将pfx证书导入您的设备,然后从cert store加载
进口:
负载:
问题是在哪里找到它来加载它,但我想我明白你在做什么了
StorageFolder certificatesFolder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Certificates");
StorageFile certificateFile = await certificatesFolder.GetFileAsync("ClientCertificate .pfx ");
IBuffer certificateBuffer = await FileIO.ReadBufferAsync(certificateFile);
string encodedCertificate = Windows.Security.Cryptography.CryptographicBuffer.EncodeToBase64String(certificateBuffer);
await CertificateEnrollmentManager.ImportPfxDataAsync(encodedCertificate, "password", ExportOption.NotExportable, KeyProtectionLevel.NoConsent, InstallOptions.None, "certificateOne");
CertificateQuery certQuery = new CertificateQuery();
certQuery.FriendlyName = "certificateOne";
IReadOnlyList<Certificate> certificates = await CertificateStores.FindAllAsync(certQuery);