C#创建https请求并使用pfx证书
常規(guī)情況下創(chuàng)建Web請(qǐng)求,并獲取請(qǐng)求數(shù)據(jù)的代碼如下:
WebRequest req = WebRequest.Create(url);
req.Timeout = 15000;
WebResponse result = req.GetResponse();
Stream ReceiveStream = result.GetResponseStream();
如果需要在代碼中加入證書(shū),則需要使用HttpWebRequest對(duì)象進(jìn)行請(qǐng)求,代碼如下:
//添加驗(yàn)證證書(shū)的回調(diào)方法
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate);
HttpWebRequest httpRequest = (HttpWebRequest)HttpWebRequest.Create(strQueryURL);
X509Certificate cerCaiShang = new X509Certificate(System.Web.HttpContext.Current.Server.MapPath(setting.PfxFile), setting.key);
httpRequest.ClientCertificates.Add(cerCaiShang);
HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse();
Stream receiveStream = httpResponse.GetResponseStream();
// 回調(diào)方法
public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{
if (sslPolicyErrors == SslPolicyErrors.None)
return true;
return false;
}
本來(lái)這就算是完成了,但總是失敗,原因未知,與萬(wàn)惡的Windows有關(guān),還需要將客戶端的證書(shū)+私鑰(pfx 或p12 文件),導(dǎo)入到操作系統(tǒng)(windows)的相關(guān)證書(shū)區(qū)域,步驟:
Windows xp/2003
1. 單擊 開(kāi)始 ,單擊 運(yùn)行 ,鍵入 mmc ,然后單擊 確定 。
2. 在 文件 菜單上單擊 添加/刪除管理單元 。
3. 在 添加/刪除管理單元 對(duì)話框中,單擊 添加 。
4. 在 添加獨(dú)立管理單元 對(duì)話框單擊 證書(shū) ,然后單擊 添加 。
5. 在在 證書(shū)管理單元中 對(duì)話框中單擊 計(jì)算機(jī)帳戶 ,然后單擊 下一步
6. 在 選擇計(jì)算機(jī) 對(duì)話框中,單擊 完成 。
7. 在 添加獨(dú)立管理單元 對(duì)話框單擊 關(guān)閉 ,然后單擊 確定 。
8. 展開(kāi) 證書(shū) (本地計(jì)算機(jī)) ,展開(kāi) 個(gè)人 ,然后單擊 證書(shū) 。
9. 右鍵 -》 所有任務(wù)-》導(dǎo)入 選擇你的證書(shū)導(dǎo)入
Windows 7
1. 單擊 開(kāi)始 ,單擊 運(yùn)行 ,鍵入 mmc ,然后單擊 確定 。
2. 在 文件 菜單上單擊 添加/刪除管理單元 。
3. 在 可用的管理單元 列表中選擇 證書(shū) ,點(diǎn)擊 添加 。
4. 在 證書(shū)管理 對(duì)話框中選擇 計(jì)算機(jī)賬戶 ,然后單擊 下一步
5. 在 選擇計(jì)算機(jī) 對(duì)話框中,單擊 完成 。
6. 在 添加或刪除管理單元 對(duì)話框單擊 確定 。
7. 展開(kāi) 證書(shū) (本地計(jì)算機(jī)) ,展開(kāi) 個(gè)人 ,然后單擊 證書(shū) 。
8. 右鍵 -》 所有任務(wù)-》導(dǎo)入 選擇你的證書(shū)導(dǎo)入
再次測(cè)試,就可以使用了。
參考:http://blog.wsdd.org/?p=510
本文轉(zhuǎn)自齊師傅博客園博客,原文鏈接:http://www.cnblogs.com/youring2/archive/2011/03/28/1997694.html,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者?
總結(jié)
以上是生活随笔為你收集整理的C#创建https请求并使用pfx证书的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关于DataGrid数据绑定后对字段进行
- 下一篇: C#机器学习插件 ---- AForge