码迷,mamicode.com
首页 > 其他好文 > 详细

UWP 使用SSL证书,保证数据安全

时间:2019-12-19 16:21:47      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:p12   sys   dal   一个   使用   control   code   text   uil   

事情是这样的,我们后端的小伙伴升级了用户会员系统,使用了全新的GraphQL登录机制,并且采用SSL加密的方式来实现阻止陌生客户端请求的案例。

GraphQL在UWP端的实现,以后有时间会单独写一篇文章,这里先说一下怎么在UWP里面使用SSL证书的问题。

 

其实接这个任务也是一个临时调研的,毕竟企业级SSL证书需要花钱买,而我们只是在内部先做一下,测试。

然后后端小伙伴给了一个测试的证书,并且导出了各种格式。

技术图片

 

毕竟我对这个领域完全陌生,就像前面提到的那个GraphQL一样,蒙圈的那种。

但是工作还是要继续的,于是Google一顿猛于虎的搜索??,终于找到了一些指引。

1. 添加Capabilities

 勾选 Shared User Certificates

技术图片

 

 

2. 添加Declarations

Available Declarations里面选择Certificates,然后点击Add即可。

这一步需要注意,网上有的教程说需要勾选 Exclusive trust。还要在最底下Certificates,点击Add New,设置Store name以及Content。

看你需要吧,我没做。也不懂这是干嘛的。??

 技术图片

 

 

3. 添加SSL证书文件

 右击解决方案,选择你的SSL证书,并且把Build Action改为Content

UWP里面我尝试了pfx和p12格式的,均可以正常使用。

其他的证书格式未验证。

技术图片

 

 

4. 添加HttpClient代码

 

        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
//Wrong method to import cert
//StorageFile certificateFile = await Package.Current.InstalledLocation.GetFileAsync(@"client.p12"); //IBuffer certificateBuffer = await FileIO.ReadBufferAsync(certificateFile); //string encodedCertificate = Windows.Security.Cryptography.CryptographicBuffer.EncodeToBase64String(certificateBuffer); //await CertificateEnrollmentManager.ImportPfxDataAsync(encodedCertificate, "000000", ExportOption.NotExportable, KeyProtectionLevel.NoConsent, InstallOptions.None, "Client Certificate");
//Better use it this way. Add cert to HttpClientHandler var handler = new HttpClientHandler(); handler.ClientCertificateOptions = ClientCertificateOption.Manual; X509Certificate2 cer = new X509Certificate2(File.ReadAllBytes("client.pfx"), "000000"); handler.ClientCertificates.Add(cer); HttpClient client = new HttpClient(handler); HttpResponseMessage response = await client.GetAsync("https://test.client.ssl/"); //HttpResponseMessage response = await client.GetAsync("https://192.168.101.99/"); response.EnsureSuccessStatusCode(); string temp = await response.Content.ReadAsStringAsync(); }

然后别忘了添加引用

using System;
using System.IO;
using System.Net.Http;
using System.Security.Cryptography.X509Certificates;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;

 

 

 5. Done!!!

如果成功访问指定的ip,并且获取到了数据的话,那么说明完成了。

UWP 使用SSL证书,保证数据安全

标签:p12   sys   dal   一个   使用   control   code   text   uil   

原文地址:https://www.cnblogs.com/hupo376787/p/12067786.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!