java 实现https请求的基本原理与介绍

本文介绍了HTTPS请求的基本原理,详细解析了X509TrustManager接口的三个核心方法:检查客户端与服务器证书及获取受信任的X509证书数组。并通过自定义信任管理器实现对指定证书的信任。
[size=medium][color=red][b]实现https请求的基本原理与介绍[/b][/color][/size]
[url]http://blog.youkuaiyun.com/daguairen/article/details/52442149[/url]

接口X509TrustManager有下述三个公有的方法需要我们实现:
[list]
[*]⑴ void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException

  该方法检查客户端的证书,若不信任该证书则抛出异常。由于我们不需要对客户端进行认证,因此我们只需要执行默认的信任管理器的这个方法。JSSE中,默认的信任管理器类为TrustManager
[*]⑵ void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException

  该方法检查服务器的证书,若不信任该证书同样抛出异常。通过自己实现该方法,可以使之信任我们指定的任何证书。在实现该方法时,也可以简单的不做任何处理,即一个空的函数体,由于不会抛出异常,它就会信任任何证书
[*]⑶ X509Certificate[] getAcceptedIssuers()
  返回受信任的X509证书数组
[/list]
  自己实现了信任管理器类,如何使用呢?类HttpsURLConnection似乎并没有提供方法设置信任管理器。其实,HttpsURLConnection通过SSLSocket来建立与HTTPS的安全连接,SSLSocket对象是由SSLSocketFactory生成的。HttpsURLConnection提供了方法setSSLSocketFactory(SSLSocketFactory)设置它使用的SSLSocketFactory对象。SSLSocketFactory通过SSLContext对象来获得,在初始化SSLContext对象时,可指定信任管理器对象。下面用一个图简单表示这几个JSSE类的关系:
[img]http://dev.yesky.com/imagelist/06/04/d9fe68331950.gif[/img]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值