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





相关文章
|
7月前
|
安全 网络安全 API
SAP ABAP 通过 https 消费外部 API 遇到错误消息 SSSLERR_SSL_CONNECT
SAP ABAP 通过 https 消费外部 API 遇到错误消息 SSSLERR_SSL_CONNECT
121 0
|
7月前
|
Windows
WCF服务端调用客户端.
WCF服务端调用客户端.
|
8月前
|
JSON Java 数据格式
springboot服务端接口外网远程调试,并实现HTTP服务监听(二)
springboot服务端接口外网远程调试,并实现HTTP服务监听(二)
77 0
|
8月前
|
网络协议 Java 应用服务中间件
springboot服务端接口外网远程调试,并实现HTTP服务监听(一)
springboot服务端接口外网远程调试,并实现HTTP服务监听(一)
81 0
|
8月前
|
JSON 网络协议 Java
springboot服务端接口外网远程调试,并实现HTTP服务监听
springboot服务端接口外网远程调试,并实现HTTP服务监听
85 0
|
API 图形学
U3D客户端框架之实现基于UnityWebRequest的Http服务 实现HttpCallBackArgs参数类、HttpRoutine访问器、HttpManager管理器
Unity3D 在2018版本中弃用了WWW请求,使用UnityWebRequest 进行网络请求,这个方法是为了满足今天的 HTTP 通信的需求,而且诞生的新类,相对于WWW这个方法,会更灵活一些,但是用起来却很不方便。
U3D客户端框架之实现基于UnityWebRequest的Http服务 实现HttpCallBackArgs参数类、HttpRoutine访问器、HttpManager管理器
|
Windows
代理 wss 配置
代理 wss 配置
298 0
|
Java 定位技术
无证书访问https外部接口
楼主公司需要调用gis服务器,但是服务器提供的https请求,同时公司也没有证书,这样会照成访问后不能直接调到接口,需要手动添加证书。所以用一下方式调用https接口可以避免上述情况。
345 0
无证书访问https外部接口
如何使用花刺代理验证快速设置http代理
下面教大家如何使用花刺代理验证,使用软件快速改变上网ip地址;
如何使用花刺代理验证快速设置http代理