中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET使用X509Certificate2出現的問題有哪些

發布時間:2021-07-12 13:56:34 來源:億速云 閱讀:168 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關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)

ASP.NET使用X509Certificate2出現的問題有哪些

選擇 [證書] -> [計算機賬戶] -> [下一步] -> [完成]

ASP.NET使用X509Certificate2出現的問題有哪些

選擇 [證書] -> [導入]

ASP.NET使用X509Certificate2出現的問題有哪些

導入你的證書文件

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 是指證書所在的存儲區

另外,證書的名稱就是這個,如圖所示 ASP.NET使用X509Certificate2出現的問題有哪些而不是其他什么東西,我就是搞錯了,點擊這個證書的詳情取了里面的名稱,導致授權不成功。

而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出現的問題有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

明水县| 元朗区| 淄博市| 沙湾县| 余姚市| 大悟县| 建德市| 前郭尔| 太白县| 乐陵市| 观塘区| 会同县| 汾阳市| 高唐县| 合江县| 彭阳县| 库尔勒市| 深圳市| 井研县| 克拉玛依市| 辉南县| 安顺市| 镇坪县| 德格县| 隆回县| 太湖县| 寿阳县| 都兰县| 湖南省| 通榆县| 兴和县| 峨边| 延川县| 邓州市| 吐鲁番市| 双峰县| 旅游| 长葛市| 香河县| 林州市| 丹巴县|