1、SSLSocket Client绕过证书检查
package com.ats.ssl.socket; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.URL; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.KeyManager; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; public class ClientWithTrustManager { public static void connectAndSend(String trustStorePath, String trustStorePwd, String ip, int port, String msg) throws IOException, NoSuchAlgorithmException, KeyManagementException{ SSLContext sslContext = SSLContext.getInstance("TLS"); //SSLContext sslContext = SSLContext.getInstance("SSLv3"); sslContext.init(new KeyManager[0], new TrustManager[] { new DefaultTrustManager() }, new SecureRandom()); SSLContext.setDefault(sslContext); SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); SSLSocket sslsocket = (SSLSocket) sslSocketFactory.createSocket( "localhost", 9999); try { OutputStream outputstream = sslsocket.getOutputStream(); OutputStreamWriter outputstreamwriter = new OutputStreamWriter( outputstream); BufferedWriter bufferedwriter = new BufferedWriter( outputstreamwriter); bufferedwriter.write(msg); bufferedwriter.flush(); } catch (Exception ex) { ex.printStackTrace(); } finally { sslsocket.close(); } } private static class DefaultTrustManager implements X509TrustManager { @Override public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { } @Override public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { } @Override public X509Certificate[] getAcceptedIssuers() { return null; } } public static void main(String[] args) throws Exception { try { URL url = Server.class.getClassLoader().getResource( "myTrustStore.jks"); String jks = url.getFile(); connectAndSend(jks, "sslTestPwd", "127.0.0.1", 9999, "This msg is from Java SSL Client :)"); } catch (Exception exception) { exception.printStackTrace(); } } }