對接電子發票的時候需要使用證書和SSL,本地VS直接調試可以成功,但是放到服務器上出現了“請求被中止: 未能創建 SSL/TLS 安全通道”的錯誤,經過二百根頭發的付出后成功解決,方法如下:
一:升級 .NET Framework版本4.6及以上
升級 .NET Framework版本4.6及以上成功解決,我本地開發用的win10,所以沒有報錯,但是服務器是Server2008。
二:給證書授權
1、運行mmc–>文件–>添加/刪除管理單元–>證書–>計算機賬戶–>完成–>確定。
2、證書–>右鍵個人–>所有任務–>導入–>選擇需要使用的證書–>下一步到完成。
3、下載winhttpcertcfg.exe 這個工具,下載地址:http://www.microsoft.com/en-us/download/details.aspx?id=19801。
4、安裝后一般是在C:\Program Files\Windows Resource Kits\Tools這個路徑下面。
進入cmd 執行如下命令:
winhttpcertcfg -g -c LOCAL_MACHINE\MY -s “test” -a “NetworkService”
這里解釋一下這幾個參數的含義:
-g 是grant授權的意思,將該證書的使用權限授予某個用戶
-c 是certstore證書存儲區,指定 本地計算機/當前用戶下的證書存儲區位置,我們這里是MY,個人存儲區
-s 是subjectstr 用于模糊匹配證書的一個字符串,我們這里用證書文件名 test
-a 是account要授權的用戶帳號
這里要注意的是授權賬戶,IIS6下面一般用的是NetworkService,如果你用的IIS7,必須要保證你網站所用的應用程序池的 “標識”和要授權的賬戶一致。
執行成功之后,會列出模糊匹配出的證書列表和已經授權的賬戶。
5、如果授權出現Error: Unable to find or obtain a context for requested certificate請確定導入證書的時候使用的是計算機賬戶而不是我的用戶賬戶!
該文章在 2023/5/23 9:40:57 編輯過