通过ssl调用远程WebService

简介:

一般情况下调用远程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. }  

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

 


     本文转自 BoyTNT 51CTO博客,原文链接:http://blog.51cto.com/boytnt/799265,如需转载请自行联系原作者





相关文章
|
3月前
|
数据安全/隐私保护 C++
c++实现http客户端和服务端的开源库以及Base64加密密码
c++实现http客户端和服务端的开源库以及Base64加密密码
|
API 图形学
U3D客户端框架之实现基于UnityWebRequest的Http服务 实现HttpCallBackArgs参数类、HttpRoutine访问器、HttpManager管理器
Unity3D 在2018版本中弃用了WWW请求,使用UnityWebRequest 进行网络请求,这个方法是为了满足今天的 HTTP 通信的需求,而且诞生的新类,相对于WWW这个方法,会更灵活一些,但是用起来却很不方便。
U3D客户端框架之实现基于UnityWebRequest的Http服务 实现HttpCallBackArgs参数类、HttpRoutine访问器、HttpManager管理器
|
12月前
|
数据采集 搜索推荐 前端开发
海外http代理中的api代理是什么意思?使用方法有哪些?
ip代理在互联网工作中是常见的,而apiip代理是ip代理的一种类型,使用时需要生成api链接。在这篇文章中,我将详细介绍api是什么,api代理又是什么,并且提供使用api代理的方法和步骤。
309 0
SoapUI 访问代理设置
SoapUI 访问代理设置
130 0
PowerShell设置Http、Https代理
PowerShell设置Http、Https代理
704 0
|
Windows
代理 wss 配置
代理 wss 配置
290 0
vos3000客户端安装问题怎样修改 web 的HTTP与HTTPS端口( 8080 )
vos3000客户端安装问题怎样修改 web 的HTTP与HTTPS端口( 8080 )
|
Java 定位技术
无证书访问https外部接口
楼主公司需要调用gis服务器,但是服务器提供的https请求,同时公司也没有证书,这样会照成访问后不能直接调到接口,需要手动添加证书。所以用一下方式调用https接口可以避免上述情况。
344 0
无证书访问https外部接口
如何使用花刺代理验证快速设置http代理
下面教大家如何使用花刺代理验证,使用软件快速改变上网ip地址;
如何使用花刺代理验证快速设置http代理