当前位置: 首页 > news >正文

C#创建https请求并使用pfx证书

常规情况下创建Web请求,并获取请求数据的代码如下:

    WebRequest req = WebRequest.Create(url);

    req.Timeout = 15000;

    WebResponse result = req.GetResponse();

    Stream ReceiveStream = result.GetResponseStream();

如果需要在代码中加入证书,则需要使用HttpWebRequest对象进行请求,代码如下:

    //添加验证证书的回调方法

    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();

    // 回调方法

    public static bool ValidateServerCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)

    {

        if (sslPolicyErrors == SslPolicyErrors.None)

            return true;

        return false;

    }

本来这就算是完成了,但总是失败,原因未知,与万恶的Windows有关,还需要将客户端的证书+私钥(pfx 或p12 文件),导入到操作系统(windows)的相关证书区域,步骤:

    Windows xp/2003

        1. 单击 开始 ,单击 运行 ,键入 mmc ,然后单击 确定 。

        2. 在 文件 菜单上单击 添加/删除管理单元 。

        3. 在 添加/删除管理单元 对话框中,单击 添加 。

        4. 在 添加独立管理单元 对话框单击 证书 ,然后单击 添加 。

        5. 在在 证书管理单元中 对话框中单击 计算机帐户 ,然后单击 下一步

        6. 在 选择计算机 对话框中,单击 完成 。

        7. 在 添加独立管理单元 对话框单击 关闭 ,然后单击 确定 。

        8. 展开 证书 (本地计算机) ,展开 个人 ,然后单击 证书 。

        9. 右键 -》 所有任务-》导入 选择你的证书导入

    Windows 7

        1. 单击 开始 ,单击 运行 ,键入 mmc ,然后单击 确定 。

        2. 在 文件 菜单上单击 添加/删除管理单元 。

        3. 在 可用的管理单元 列表中选择 证书 ,点击 添加 。

        4. 在 证书管理 对话框中选择 计算机账户 ,然后单击 下一步

        5. 在 选择计算机 对话框中,单击 完成 。

        6. 在 添加或删除管理单元 对话框单击 确定 。

        7. 展开 证书 (本地计算机) ,展开 个人 ,然后单击 证书 。

        8. 右键 -》 所有任务-》导入 选择你的证书导入

再次测试,就可以使用了。

参考:http://blog.wsdd.org/?p=510 

如果认为此文对您有帮助,别忘了支持一下哦!

作者: 齐飞
来源: http://youring2.cnblogs.com/
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

转载:http://www.cnblogs.com/youring2/archive/2011/03/28/1997694.html

相关文章:

  • Xcode 7 缺少 *.dylib库的解决方法
  • [C#基础]说说lock到底锁谁?
  • Shell学习笔记---重定向输入、输出(原创)
  • 堆的一些简单应用
  • dtrace4linux_Example
  • jQuery.extend 函数详解
  • Shiro安全框架入门篇(登录验证实例详解与源码)
  • goldengate一些参数整理
  • HDU1161 Eddy's mistakes
  • Unity3d标签管理类-利用脚本控制标签,提升工作效率
  • putty如何设置密钥登陆
  • 程序员该如何有效的找工作?
  • Android 认识Activity 生命周期
  • C#基础内容学习笔记(一)
  • Open CV缩放图像
  • [case10]使用RSQL实现端到端的动态查询
  • Brief introduction of how to 'Call, Apply and Bind'
  • Fastjson的基本使用方法大全
  • JavaScript设计模式与开发实践系列之策略模式
  • java正则表式的使用
  • magento 货币换算
  • PermissionScope Swift4 兼容问题
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 思否第一天
  • 新书推荐|Windows黑客编程技术详解
  • 移动端唤起键盘时取消position:fixed定位
  • 中文输入法与React文本输入框的问题与解决方案
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • ​用户画像从0到100的构建思路
  • #HarmonyOS:Web组件的使用
  • (2022 CVPR) Unbiased Teacher v2
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (论文阅读11/100)Fast R-CNN
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (转)原始图像数据和PDF中的图像数据
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • *Django中的Ajax 纯js的书写样式1
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET Core 中的路径问题
  • .NET 药厂业务系统 CPU爆高分析
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • .Net转前端开发-启航篇,如何定制博客园主题
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @SpringBootApplication 包含的三个注解及其含义
  • [.net]官方水晶报表的使用以演示下载
  • []error LNK2001: unresolved external symbol _m