package ssl; //ani import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import javax.net.ssl.SSLServerSocket; import javax.net.ssl.SSLServerSocketFactory; import javax.net.ssl.SSLSocket; /** Visit the channel http://youtube.com/zarigatongy */ //Writing SSL Server in Java public class SSLServerExample { /* * Where do we find the keystore Information ? */ final static String pathToStores = "/tmp/ssl/server"; // The Directory final static String keyStoreFile = "server2.keystore"; // The FileName final static String passwd = "123456"; // The Password /* * Which Port to Listen SSL Connections */ final static int theServerPort = 12345; /* * Turn on SSL debugging? */ static boolean debug = false; void doServerSide() throws Exception { SSLServerSocketFactory sslssf = (SSLServerSocketFactory) SSLServerSocketFactory .getDefault(); SSLServerSocket sslServerSocket = (SSLServerSocket) sslssf .createServerSocket(theServerPort); SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept(); InputStream sslIS = sslSocket.getInputStream(); //For Writing Back to the Client OutputStream sslOS = sslSocket.getOutputStream(); //Read from the Client BufferedReader bufferedreader = new BufferedReader( new InputStreamReader(sslIS)); String string = null; while ((string = bufferedreader.readLine()) != null) { System.out.println(string); System.out.flush(); } sslSocket.close(); } public static void main(String[] args) throws Exception { String trustFilename = pathToStores + "/" + keyStoreFile; System.setProperty("javax.net.ssl.keyStore", trustFilename); System.setProperty("javax.net.ssl.keyStorePassword", passwd); if (debug) System.setProperty("javax.net.debug", "all"); // java -Djavax.net.ssl.keyStore=/tmp/trustFilename // -Djavax.net.ssl.keyStorePassword=123456 SSLServerExample new SSLServerExample().doServerSide(); } }