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