全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

在做微信支付退款的时候,由于需要使用到p12证书,结果就遇到一系列的坑。这里做个记录方便以后查阅。

原先加载证书的代码:

复制代码 代码如下:1 X509Certificate2 cert = new X509Certificate2(path + WxPayConfig.SSLCERT_PATH, WxPayConfig.SSLCERT_PASSWORD);2 Request.ClientCertificates.Add(cert);

在vs 上测试通过。但是部署到IIS上一直报这个问题:

复制代码 代码如下:System.Security.Cryptography.CryptographicException: 系统找不到指定的文件。

详细Stack Trace信息:

在 System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr)
在 System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx)
在 System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags)
在 System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password)
在 TenpayCore.HttpService.Post(TenpayException& tpEx, Byte[] xml, String url, Boolean isUseCert, Int32 timeout)。

反复测试之后,确认不是代码跟文件路径的问题。在查询微软的文档后发现了相关说明,指明了问题所在,以下分享一下我的操作流程。

1.将证书安装上去

点击 [开始] -> [运行] -> 键入[mmc] 进入“控制台”界面 -> 选择[文件] -> [添加/删除管理单元](Ctrl+M)

选择 [证书] -> [计算机账户] -> [下一步] -> [完成]

选择 [证书] -> [导入]

导入你的证书文件

2.授权证书

先安装 winhttpcertcfg.exe 工具(Windows HTTP Services Certificate Configuration Tool)。安装完成之后在该工具在C:\Program Files (x86)\Windows Resource Kits\Tools 或者C:\Program Files\Windows Resource Kits\Tools 文件夹下。打开cmd键入命令:

复制代码 代码如下:winhttpcertcfg -g -c LOCAL_MACHINE\MY -s "你的证书名称" -a "你的iis账号标识"

-g 指令 就是授权

-c 是指证书所在的存储区

另外,证书的名称就是这个,如图所示 而不是其他什么东西,我就是搞错了,点击这个证书的详情取了里面的名称,导致授权不成功。

而iis账号标识,是指站点对应的应用程序池,高级设置里有标识这个选项来选择对应的用户。当时我授权的标识是Network Service,而应用程序池中的标识ApplicationPoolIdentity,结果导致我发起请求时出现了:

复制代码 代码如下:System.Net.WebException: 请求被中止: 未能创建 SSL/TLS 安全通道。

3.修改代码

做完这些配置之后修改一下之前加载证书的代码。

复制代码 代码如下: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];

再测试一下,终于成功!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# ASP.NET  # X509Certificate2  # 微信小程序 免费SSL证书https、TLS版本问题的解决办法  # 微信小程序 后台https域名绑定和免费的https证书申请详解  # 是指  # 应用程序  # 加载  # 找不到  # 这个问题  # 上一  # 错了  # 微软  # 做个  # 什么东西  # 做完  # 不成功  # 大家多多  # 池中  # 出现了  # 测试一下  # 如图所示  # 而不是  # 操作流程  # 发现了 


相关文章: 香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  建站之星IIS配置教程:代码生成技巧与站点搭建指南  如何用wdcp快速搭建高效网站?  制作网站的基本流程,设计网站的软件是什么?  青岛网站建设如何选择本地服务器?  C++中引用和指针有什么区别?(代码说明)  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  建站主机选虚拟主机还是云服务器更好?  制作网站外包平台,自动化接单网站有哪些?  如何通过山东自助建站平台快速注册域名?  如何选择香港主机高效搭建外贸独立站?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  如何选择高效稳定的ISP建站解决方案?  Python lxml的etree和ElementTree有什么区别  定制建站如何定义?其核心优势是什么?  建站之星展会模版如何一键下载生成?  视频网站app制作软件,有什么好的视频聊天网站或者软件?  如何快速搭建高效简练网站?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  如何在阿里云购买域名并搭建网站?  如何在万网开始建站?分步指南解析  PHP正则匹配日期和时间(时间戳转换)的实例代码  建站主机与虚拟主机有何区别?如何选择最优方案?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  如何挑选最适合建站的高性能VPS主机?  如何选择建站程序?包含哪些必备功能与类型?  网站app免费制作软件,能免费看各大网站视频的手机app?  如何用搬瓦工VPS快速搭建个人网站?  网站制作网站,深圳做网站哪家比较好?  做企业网站制作流程,企业网站制作基本流程有哪些?  如何在IIS中配置站点IP、端口及主机头?  建站之星各版本价格是多少?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  建站为何优先选择香港服务器?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  C++时间戳转换成日期时间的步骤和示例代码  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  如何基于云服务器快速搭建网站及云盘系统?  如何通过.red域名打造高辨识度品牌网站?  如何获取开源自助建站系统免费下载链接?  ,怎么在广州志愿者网站注册?  临沂网站制作企业,临沂第三中学官方网站?  制作门户网站的参考文献在哪,小说网站怎么建立?  建站之星如何防范黑客攻击与数据泄露?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  建站主机功能解析:服务器选择与快速搭建指南  小建面朝正北,A点实际方位是否存在偏差?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  已有域名和空间如何快速搭建网站?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。