说明
创建 SSLSocket 有一些不同,建立连接后,常用方法与 Socket 类似
创建 SSLSocket
SSLSocket s = (SSLSocket)SSLSocketFactory.getDefault().createSocket();
然后连接:
SocketAddress sa = new InetSocketAddress(host,port);
s.connect(sa);
创建并建立连接
SSLSocket s = (SSLSocket)SSLSocketFactory.getDefault().createSocket(host,port);
SSLContext
安全套接字协议的实现核心类,可以指定 证书、信任管理器、SecureRandom
实现管理器类
CA机构颁发的证书或者权威机构颁发的证书 都是直接信任的,直接使用即可,不需要再重写任何代码,所以下面的代码一般不用,这里只是举例说明
class X509TrustManagerImpl implements X509TrustManager {
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkServerTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
}
@Override
public void checkClientTrusted(X509Certificate[] chain,
String authType) throws CertificateException {
}
};
X509TrustManager x509m = new X509TrustManagerImpl();
SSLContext context = SSLContext.getInstance("SSL");
context.init(null,
new TrustManager[] { x509m },
new SecureRandom());
SSLSocket s = (SSLSocket)context.getSocketFactory().createSocket();
参考:
https://blog.csdn.net/qq_34743935/article/details/115913093
https://blog.csdn.net/a351945755/article/details/22788855