通过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,如需转载请自行联系原作者





相关文章
|
6月前
|
安全 网络安全 API
SAP ABAP 通过 https 消费外部 API 遇到错误消息 SSSLERR_SSL_CONNECT
SAP ABAP 通过 https 消费外部 API 遇到错误消息 SSSLERR_SSL_CONNECT
116 0
|
3月前
|
数据安全/隐私保护 C++
c++实现http客户端和服务端的开源库以及Base64加密密码
c++实现http客户端和服务端的开源库以及Base64加密密码
|
6月前
|
Windows
WCF服务端调用客户端.
WCF服务端调用客户端.
|
API 图形学
U3D客户端框架之实现基于UnityWebRequest的Http服务 实现HttpCallBackArgs参数类、HttpRoutine访问器、HttpManager管理器
Unity3D 在2018版本中弃用了WWW请求,使用UnityWebRequest 进行网络请求,这个方法是为了满足今天的 HTTP 通信的需求,而且诞生的新类,相对于WWW这个方法,会更灵活一些,但是用起来却很不方便。
U3D客户端框架之实现基于UnityWebRequest的Http服务 实现HttpCallBackArgs参数类、HttpRoutine访问器、HttpManager管理器
|
12月前
SoapUI 访问代理设置
SoapUI 访问代理设置
126 0
vos3000客户端安装问题怎样修改 web 的HTTP与HTTPS端口( 8080 )
vos3000客户端安装问题怎样修改 web 的HTTP与HTTPS端口( 8080 )
|
安全 Java C#
【知识积累】服务器端获取客户端的IP地址(当客户端调用由Axis开发的WebService)
由于项目中一个小的模块需要获取客户端的IP地址以保证安全调用webservice接口,项目中客户端使用C#编写,服务器端使用Java编写,服务器端与客户端采用Axis开发的WebService进行通信。服务器端维护IP白名单列表,只有IP地址在白名单中的客户端才可以成功调用到接口,获得服务。
225 0
如何使用花刺代理验证快速设置http代理
下面教大家如何使用花刺代理验证,使用软件快速改变上网ip地址;
如何使用花刺代理验证快速设置http代理