一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - ASP.NET教程 - ASP.NET使用X509Certificate2出現(xiàn)一系列問(wèn)題的解決方法

ASP.NET使用X509Certificate2出現(xiàn)一系列問(wèn)題的解決方法

2020-05-04 15:59Shenroe ASP.NET教程

這篇文章主要為大家詳細(xì)介紹了ASP.NET使用X509Certificate2出現(xiàn)一系列問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

在做微信支付退款的時(shí)候,由于需要使用到p12證書(shū),結(jié)果就遇到一系列的坑。這里做個(gè)記錄方便以后查閱。

原先加載證書(shū)的代碼:

 

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

 

在vs 上測(cè)試通過(guò)。但是部署到IIS上一直報(bào)這個(gè)問(wèn)題:

 

復(fù)制代碼 代碼如下:
System.Security.Cryptography.CryptographicException: 系統(tǒng)找不到指定的文件。

 

詳細(xì)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)。

反復(fù)測(cè)試之后,確認(rèn)不是代碼跟文件路徑的問(wèn)題。在查詢微軟的文檔后發(fā)現(xiàn)了相關(guān)說(shuō)明,指明了問(wèn)題所在,以下分享一下我的操作流程。

1.將證書(shū)安裝上去

點(diǎn)擊 [開(kāi)始] -> [運(yùn)行] -> 鍵入[mmc] 進(jìn)入“控制臺(tái)”界面 -> 選擇[文件] -> [添加/刪除管理單元](Ctrl+M)

ASP.NET使用X509Certificate2出現(xiàn)一系列問(wèn)題的解決方法

選擇 [證書(shū)] -> [計(jì)算機(jī)賬戶] -> [下一步] -> [完成]

ASP.NET使用X509Certificate2出現(xiàn)一系列問(wèn)題的解決方法

選擇 [證書(shū)] -> [導(dǎo)入]

ASP.NET使用X509Certificate2出現(xiàn)一系列問(wèn)題的解決方法

導(dǎo)入你的證書(shū)文件

2.授權(quán)證書(shū)

先安裝 winhttpcertcfg.exe 工具(Windows HTTP Services Certificate Configuration Tool)。安裝完成之后在該工具在C:\Program Files (x86)\Windows Resource Kits\Tools 或者C:\Program Files\Windows Resource Kits\Tools 文件夾下。打開(kāi)cmd鍵入命令:

 

復(fù)制代碼 代碼如下:
winhttpcertcfg -g -c LOCAL_MACHINE\MY -s "你的證書(shū)名稱" -a "你的iis賬號(hào)標(biāo)識(shí)"

 

-g 指令 就是授權(quán)

-c 是指證書(shū)所在的存儲(chǔ)區(qū)

另外,證書(shū)的名稱就是這個(gè),如圖所示ASP.NET使用X509Certificate2出現(xiàn)一系列問(wèn)題的解決方法而不是其他什么東西,我就是搞錯(cuò)了,點(diǎn)擊這個(gè)證書(shū)的詳情取了里面的名稱,導(dǎo)致授權(quán)不成功。

而iis賬號(hào)標(biāo)識(shí),是指站點(diǎn)對(duì)應(yīng)的應(yīng)用程序池,高級(jí)設(shè)置里有標(biāo)識(shí)這個(gè)選項(xiàng)來(lái)選擇對(duì)應(yīng)的用戶。當(dāng)時(shí)我授權(quán)的標(biāo)識(shí)是Network Service,而應(yīng)用程序池中的標(biāo)識(shí)ApplicationPoolIdentity,結(jié)果導(dǎo)致我發(fā)起請(qǐng)求時(shí)出現(xiàn)了:

 

復(fù)制代碼 代碼如下:
System.Net.WebException: 請(qǐng)求被中止: 未能創(chuàng)建 SSL/TLS 安全通道。

 

3.修改代碼

做完這些配置之后修改一下之前加載證書(shū)的代碼。

 

復(fù)制代碼 代碼如下:
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, "你的證書(shū)名稱", false)[0];

 

再測(cè)試一下,終于成功!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 特级夫妻大片免费在线播放 | 日韩在线观看一区二区不卡视频 | 好湿好滑好硬好爽好深视频 | 久久精品久久久 | 国产成人在线播放 | 日本小网站 | 欧美精品一区视频 | 久久强奷乱码老熟女 | 5g影院天天5g天天爽大陆 | 亚洲丁香网 | 亚洲国产日韩欧美在线vip1区 | 91天堂影院 | 日韩精品亚洲一级在线观看 | 经典三级四虎在线观看 | 色老板视频在线 | 色涩导航| 丝瓜香蕉视频 | 毛片区 | 亚洲欧美日韩综合在线播放 | 成年人视频免费在线观看 | 黄漫免费观看 | 美女一线天 | 99久久精品久久久久久清纯 | 免费观看日本 | 亚洲人成绝费网站色ww | 我年轻漂亮的继坶2中字在线播放 | babes性欧美30 | 国产精品一区二区三区免费 | 特黄特黄一级高清免费大片 | 黄瓜视频黄 | 日韩精品欧美激情国产一区 | 天天看黄 | 精品破处 | 无限韩国视频免费播放 | 国产日产韩产麻豆1区 | 国产伦码精品一区二区 | 日韩中文字幕一区 | 天天摸天天爽视频69视频 | 久久AV国产麻豆HD真实乱 | 暖暖影院日本版 | 欧美a级v片不卡在线观看 |