Https JSSE 研究

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中所有的连接使用的协议

SSLSession.invalidate(),使session无效,以后的连接不能再使用,但是之前的连接可以继续使用知道连接关闭

SSLSession.isValid(),如果可以恢复或者加入一个连接,返回true

 

2、HttpsURLConnection

set DefaultHostnameVerifier(),可以设置自己的验证类,继承HostnameVerifier接口,实现其中public boolean verify(String hostname, SSLSession session);方法

HostnameVerifier是当调用connect()方法,用来验证服务器主机名是否符合证书中CN项(默认的)。

HttpsURLConnection.setSSLSocketFactory(),可以设置自定义的 SSLSocketFactory类,setSSLSocketFactory(), which can be used to pass your own SSLSocketFactory for the SSLContext you want to use. After the set() method is called, any calls to connect() will use the new SSLSocketFactory object.

HttpsURLConnection.set DefaultSSLSocketFactory(),设置成功后,一个新的HttpsURLConnection实例将会产生

 

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; } } }

 

 

 

 

你可能感兴趣的:(exception,加密,String,session,服务器,Class)