Http 请求的“证书验证”实践


一个小程序,Http请求突然没有返回数据,为此诊疗实践,特此记录:

一、网页浏览诊查

1.网页查看地址:输入网址后,网页地址栏提示不安全。
如下图
在这里插入图片描述

2.查看证书,该证书已经过期
在这里插入图片描述

二、代码调试诊查

代码运行提示错误信息如下:
在这里插入图片描述

三、解决办法

 #region 设置安全协议,证书验证
/// 设置支持的ssl协议版本,这里勾选上常用的几个
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | (SecurityProtocolType)3072;

/// 设置服务器验证服务的回调允许请求
ServicePointManager.ServerCertificateValidationCallback += CheckValidationResult;

 //载入网站的证书
string filePath = System.IO.Directory.GetCurrentDirectory() + "/fre.cer";
X509Certificate cert = new X509Certificate(filePath);

//将证书添加客户端证书集合
request?.ClientCertificates.Add(cert);
#endregion
    private bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
    {
         return true; //为了通过证书验证,总是返回true
    }

经过为Http Request对象增加回调,问题得到解决!




四、步骤三的证书导出方法

以csdn.net为例,

  • 第1步:输入网址,点地址栏最左侧标识

在这里插入图片描述


  • 在弹出的窗体中选择证书项
    在这里插入图片描述

  • 证书窗体中选择详细信息项,并点击复制到文件按钮
    在这里插入图片描述

  • 按向导完成选择和导出,注意这里选用x.509
    在这里插入图片描述

按向导完成证书保存即可。

特别提示

导出方法与在CSDN中的“导出https网站证书” 文描述相同,唯一不同的是导出的证书格式不同!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值