欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

通过ssl调用远程WebService

发布时间:2025/3/20 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 通过ssl调用远程WebService 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

 

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

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

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

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

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

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

  • public void CallRemoteWebService()  
  •     //指定证书验证回调方法,Lamda表达式,直接返回true,表示忽略所有错误  
  •     ServicePointManager.ServerCertificateValidationCallback = (source, cert, chain, errors) => true
  •   
  •     //创建WebService的代理实例  
  •     var proxy = new Proxy();  
  •     //远程调用  
  •     proxy.DoSomething();  
  • }  
  • 关键在于要让证书验证时忽略所有错误。不用担心,忽略错误只是指不用判断证书有效性,并不会影响通信信道的加密过程。

     


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





    总结

    以上是生活随笔为你收集整理的通过ssl调用远程WebService的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。