Mega Code Archive

 
Categories / Java Tutorial / Security
 

SSL Client Verifier

import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import javax.net.SocketFactory; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocketFactory; import javax.security.cert.X509Certificate; import sun.security.x509.X500Name; public class MainClass {   public static void main(String[] args) throws Exception {     SocketFactory sf = SSLSocketFactory.getDefault();     SSLSocket s = (SSLSocket) sf.createSocket(args[0], Integer.parseInt(args[1]));     SSLSession sess = s.getSession();     String host = sess.getPeerHost();     X509Certificate[] certs = sess.getPeerCertificateChain();     String dn = certs[0].getSubjectDN().getName();     X500Name name = new X500Name(dn);     if (!host.equals(name.getCommonName()))       System.out.println("Warning: Expected " + host + " and got " + name.getCommonName());     BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));     PrintWriter pw = new PrintWriter(s.getOutputStream());     pw.println("hi");     pw.flush();     System.out.println(br.readLine());     s.close();   } }