此类的实例表示安全套接字协议的实现,它充当用于安全套接字工厂或 SSLEngine 的工厂。用可选的一组密钥和信任管理器及安全随机字节源初始化此类。
package com.cxg.demo.test;
import java.util.Arrays;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
/**
* Title: SSLSocket扩展Socket并提供使用SSL或TLS协议的安全套接字。
* 这种套接字是正常的流套接字,但是它们在基础网络传输协议(如TCP)上添加了安全保护层。
* 关于常见的方法和参数注释参看API即可
* Description: TestDemo
* @author lu
* @date 2016年7月5日 上午10:08:15
*/
public class SSLStokeTest {
public static void main(String[] args) throws Exception{
//SSLContext安全套接字协议的实现
X509TrustManager x509m = new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] chain, String authType)
throws java.security.cert.CertificateException {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] chain, String authType)
throws java.security.cert.CertificateException {
}
};
// 获取一个SSLContext实例
SSLContext s = SSLContext.getInstance("SSL","SunJSSE");
// 初始化SSLContext实例
s.init(null, new TrustManager[] { x509m },
new java.security.SecureRandom());
// 打印这个SSLContext实例使用的协议
System.out.println("缺省安全套接字使用的协议: " + s.getProtocol());
// 获取SSLContext实例相关的SSLEngine
SSLEngine e = s.createSSLEngine();
System.out
.println("支持的协议: " + Arrays.asList(e.getSupportedProtocols()));
System.out.println("启用的协议: " + Arrays.asList(e.getEnabledProtocols()));
System.out.println("支持的加密套件: "
+ Arrays.asList(e.getSupportedCipherSuites()));
System.out.println("启用的加密套件: "
+ Arrays.asList(e.getEnabledCipherSuites()));
}
}