1、SSLSession
SSLSession.getCIpherSuite()返回(String)在这个session中所有的连接使用的加密函数(cipher suite)
SSLSession.getCreationTime()返回一个Long类型的数据,代表SSLSession创建的时间
SSLSession.getId()返回代表Session对象的一个字节数组
SSLSession.getLastAccessedTime()返回Long类型的数据,
SSLSession.getLocalCertificates()返回一个将要发送到对方的本地证书链
SSLSession.getLocalPrincipal()返回代表该端的一个证书
SSLSession.getPeerCertificates()返回对方的证书链
SSLSession.getPeerHost()返回对方的hostname或者ip地址
SSLSession.getPeerPort()返回对方的端口号
SSLSession。getProtocol()返回这个session中所有的连接使用的协议
2、HttpsURLConnection
set DefaultHostnameVerifier(),可以设置自己的验证类,继承HostnameVerifier接口,实现其中public boolean verify(String hostname, SSLSession session);方法
HostnameVerifier是当调用connect()方法,用来验证服务器主机名是否符合证书中CN项(默认的)。
private static class Validator implements HostnameVerifier { public boolean verify(String hostName, SSLSession session) { try { X500Principal hostID = (X500Principal)session.getPeerPrincipal(); return hostID.getName().equals("CN=Test CA Certificate"); } catch (Exception e) { return false; } } }