源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

ASP.NET使用X509Certificate2出现一系列问题的解决方法

  • 时间:2021-04-03 09:16 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:ASP.NET使用X509Certificate2出现一系列问题的解决方法
在做微信支付退款的时候,由于需要使用到p12证书,结果就遇到一系列的坑。这里做个记录方便以后查阅。 原先加载证书的代码:
[url=https://support.microsoft.com/zh-cn/kb/948154]相关说明[/url],指明了问题所在,以下分享一下我的操作流程。[url=https://support.microsoft.com/zh-cn/kb/948154] [/url] [b]1.将证书安装上去[/b] 点击 [开始] -> [运行] -> 键入[mmc] 进入“控制台”界面 -> 选择[文件] -> [添加/删除管理单元](Ctrl+M) [img]http://files.jb51.net/file_images/article/201705/2017051014342911.png[/img] 选择 [证书] -> [计算机账户] -> [下一步] -> [完成] [img]http://files.jb51.net/file_images/article/201705/2017051014342912.png[/img] 选择 [证书] -> [导入] [img]http://files.jb51.net/file_images/article/201705/2017051014342913.png[/img] 导入你的证书文件 [b]2.授权证书[/b] 先安装 [url=https://www.microsoft.com/en-us/download/details.aspx?id=19801]winhttpcertcfg.exe[/url] 工具(Windows HTTP Services Certificate Configuration Tool)。安装完成之后在该工具在C:\Program Files (x86)\Windows Resource Kits\Tools 或者C:\Program Files\Windows Resource Kits\Tools 文件夹下。打开cmd键入命令:
[u]复制代码[/u] 代码如下:
winhttpcertcfg -g -c LOCAL_MACHINE\MY -s "你的证书名称" -a "你的iis账号标识"
-g 指令 就是授权 -c 是指证书所在的存储区 另外,证书的名称就是这个,如图所示 [img]http://files.jb51.net/file_images/article/201705/2017051014342914.png[/img] 而不是其他什么东西,我就是搞错了,点击这个证书的详情取了里面的名称,导致授权不成功。 而iis账号标识,是指站点对应的应用程序池,高级设置里有标识这个选项来选择对应的用户。当时我授权的标识是Network Service,而应用程序池中的标识ApplicationPoolIdentity,结果导致我发起请求时出现了:
[u]复制代码[/u] 代码如下:
System.Net.WebException: 请求被中止: 未能创建 SSL/TLS 安全通道。
[b]3.修改代码[/b] 做完这些配置之后修改一下之前加载证书的代码。
[u]复制代码[/u] 代码如下:
1 X509Store store = new X509Store("My", StoreLocation.LocalMachine);2 store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);3 4 System.Security.Cryptography.X509Certificates.X509Certificate2 cert = 5 store.Certificates.Find(X509FindType.FindBySubjectName, "你的证书名称", false)[0];
再测试一下,终于成功! 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部