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