手机版

ASP中使用x509证书2一系列问题的解决方案 网

时间:2021-09-05 来源:互联网 编辑:宝哥软件园 浏览:

在做微信支付和退款的时候,由于需要使用p12证书,我们遇到了一系列的坑。在这里做个记录,供以后参考。

最初加载证书的代码:

复制代码如下:1 x 509 certificate 2 cert=new x 509 certificate 2(路径wxpayconfig.sslcert _ path,wxpayconfig . sslcert _ password);2请求。客户端证书。添加(证书);

测试通过vs.但是部署到IIS总是会报告这个问题:

复制代码如下:system。security . cryptography . cryptography except 3360系统找不到指定的文件。

详细的堆栈跟踪信息:

在系统中。security . cryptography . cryptography exception . throw cryptography exception(int 32hr)在系统中。security . cryptography . x509 certificates . x509 utils . _ loadcertfromfile(字符串文件名,intptrpassword,uint32dfflags,boolean persistkeyset,SafeCertContextHandle pCertCtx)。security . cryptography . x509 certificate . x509 certificate . loadcertificate from file(字符串文件名,对象密码,x509 keystorageflags)。security.cryptography.x509证书. x509证书2.tenpaycore.httpservice.post中的ctor(字符串文件名,字符串密码)(tenpayexception tpex,byte [] XML,stringurl,boolean isusecert,int32timeout)。

重复测试后,确保不是代码和文件路径。查询微软的文档后,找到了相关说明,指出了问题。下面分享一下我的操作流程。

1.安装证书

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

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

选择[证书]-[导入]

导入您的证书文件

2.授权证书

首先安装windows http服务证书配置工具。安装完成后,该工具位于c: \程序文件(x86) \ windows资源工具包\工具或c: \程序文件\ windows资源工具包\工具文件夹中。打开cmd并键入命令:

复制代码如下: winhttpcertcfg-g-c local _ machine \ my-s“您的证书名称”-a“您的iis帐户id”

-g命令是授权

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

此外,证书的名称是这样的,如图

不是别的,我只是犯了一个错误。我点击了这个证书的详细信息,并在里面取了名字,导致授权不成功。

iis账号ID指的是站点对应的应用池,高级设置中有一个ID选项可以选择对应的用户。当时我授权的身份是网络服务,应用池中的身份是ApplicationPoolIdentity。结果,当我发起请求时,出现了:

复制代码如下:系统。net.webexception :请求中止:创建SSL/TLS安全通道失败。

3.修改代码

完成这些配置后,修改之前加载证书的代码。

复制代码如下:1 x 509 store=new x509 store(' my ',storelocation。local machine);2店。打开(OpenFlags。ReadOnly | OpenFlags。OpenExistingOnly);3 4系统。security . cryptography . x509 certificate . x509 certificate 2 cert=5 store . certificates . find(x509 find type . findbybsubjectname,'您的证书名称',false)[0];

再试一次,最后成功!

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

版权声明:ASP中使用x509证书2一系列问题的解决方案 网是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。