博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过ssl调用远程WebService
阅读量:7008 次
发布时间:2019-06-28

本文共 648 字,大约阅读时间需要 2 分钟。

一般情况下调用远程WebService通过代理类直接访问就可以,可是如果WebService是在https站点下,调用时就要分情况考虑了,整理了一下:

 

1、客户端证书已正确安装

指已经在客户端安装了客户端证书到证书存储区,且证书符合以下几个条件:

  ◆ 证书中定义的使用者与访问WebService时使用的域名一致;
  ◆ 证书未过期;
  ◆ 证书链在本机完整可信;

关于证书链完整可信,是指本证书,以及向上追溯的各级颁发者,直至根证书颁发者,都被系统承认。

此时直接调用即可,与访问http时没有区别,底层会自动处理SSL握手。如果有任何一项不符合要求,调用时就会产生“基础连接已经关闭:未能为 SSL/TLS 安全通道建立信任关系”的异常,此时要使用2中的方法。

2、客户端证书未正确安装

 
  1. public void CallRemoteWebService()  
  2.     //指定证书验证回调方法,Lamda表达式,直接返回true,表示忽略所有错误  
  3.     ServicePointManager.ServerCertificateValidationCallback = (source, cert, chain, errors) => true
  4.   
  5.     //创建WebService的代理实例  
  6.     var proxy = new Proxy();  
  7.     //远程调用  
  8.     proxy.DoSomething();  
  9. }  

关键在于要让证书验证时忽略所有错误。不用担心,忽略错误只是指不用判断证书有效性,并不会影响通信信道的加密过程。

 

转载地址:http://fmvtl.baihongyu.com/

你可能感兴趣的文章
Java常用的日志框架对比和深入分析
查看>>
主流MPP解决方案Postgres-XL集群修炼之路视频课程
查看>>
使用layui前端框架实现简单的博客
查看>>
人工智能落地之路:从概念验证到产品
查看>>
人工智能专业如此火爆,在我国已有35所大学开设,一篇文章帮你全汇总
查看>>
【实例】offline temporary表空间三剑客之一
查看>>
linux 开启独立iptables日志
查看>>
httpd 2.4.9 + mysql-5.5.33 + php-5.4.26编译安装
查看>>
Scala的模式匹配和条件类
查看>>
python 之简单模拟银行系统功能(卡号申请、还款、支付、取现)
查看>>
autossh 启动脚本
查看>>
zabbix3.0.2 实现发送email报警的详细过程
查看>>
zabbix自定义监控实现思路以及自定义监控某个端口的连接数
查看>>
监控程序进程的VBS脚本
查看>>
OpenCart产品属性过滤(Atrribute Filter)功能插件
查看>>
第 四 十 一 天:mysql 调 优 方 式
查看>>
Python -- 字符串 列表 元组 字典
查看>>
CodeForces 146A Lucky Ticket
查看>>
我的友情链接
查看>>
Oracle中 IN 和 EXISTS 的性能区别和使用注意事项
查看>>