<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSecurity%2FSSL_Socket</id>
		<title>Java Tutorial/Security/SSL Socket - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSecurity%2FSSL_Socket"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Security/SSL_Socket&amp;action=history"/>
		<updated>2026-04-16T20:01:41Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Security/SSL_Socket&amp;diff=4366&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Security/SSL_Socket&amp;diff=4366&amp;oldid=prev"/>
				<updated>2010-06-01T05:01:59Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:01, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Security/SSL_Socket&amp;diff=4365&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Security/SSL_Socket&amp;diff=4365&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Get peer certificate from SSL session ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.ObjectOutputStream;&lt;br /&gt;
import java.security.cert.CertPath;&lt;br /&gt;
import java.security.cert.CertificateFactory;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import javax.net.ssl.HttpsURLConnection;&lt;br /&gt;
import javax.net.ssl.SSLSession;&lt;br /&gt;
import javax.net.ssl.SSLSocket;&lt;br /&gt;
import javax.net.ssl.SSLSocketFactory;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    SSLSocketFactory factory = HttpsURLConnection.getDefaultSSLSocketFactory();&lt;br /&gt;
    SSLSocket socket = (SSLSocket) factory.createSocket(&amp;quot;127.0.0.1&amp;quot;, 8888);&lt;br /&gt;
    socket.startHandshake();&lt;br /&gt;
    SSLSession session = socket.getSession();&lt;br /&gt;
    java.security.cert.Certificate[] servercerts = session.getPeerCertificates();&lt;br /&gt;
    List mylist = new ArrayList();&lt;br /&gt;
    for (int i = 0; i &amp;lt; servercerts.length; i++) {&lt;br /&gt;
      mylist.add(servercerts[i]);&lt;br /&gt;
    }&lt;br /&gt;
    CertificateFactory cf = CertificateFactory.getInstance(&amp;quot;X.509&amp;quot;);&lt;br /&gt;
    CertPath cp = cf.generateCertPath(mylist);&lt;br /&gt;
    FileOutputStream f = new FileOutputStream(&amp;quot;CertPath.dat&amp;quot;);&lt;br /&gt;
    ObjectOutputStream b = new ObjectOutputStream(f);&lt;br /&gt;
    b.writeObject(cp);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Retrieving the Certification Path of an SSL Server ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.security.cert.Certificate;&lt;br /&gt;
import javax.net.ssl.HttpsURLConnection;&lt;br /&gt;
import javax.net.ssl.SSLSocket;&lt;br /&gt;
import javax.net.ssl.SSLSocketFactory;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    int port = 443;&lt;br /&gt;
    String hostname = &amp;quot;hostname&amp;quot;;&lt;br /&gt;
    SSLSocketFactory factory = HttpsURLConnection.getDefaultSSLSocketFactory();&lt;br /&gt;
    SSLSocket socket = (SSLSocket) factory.createSocket(hostname, port);&lt;br /&gt;
    socket.startHandshake();&lt;br /&gt;
    // Retrieve the server&amp;quot;s certificate chain&lt;br /&gt;
    Certificate[] serverCerts = socket.getSession().getPeerCertificates();&lt;br /&gt;
    socket.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Send html(gif) file through SSLSocket ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.FileOutputStream;&lt;br /&gt;
import java.io.InputStream;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.io.OutputStream;&lt;br /&gt;
import java.io.PrintStream;&lt;br /&gt;
import java.net.Socket;&lt;br /&gt;
import javax.net.ssl.SSLSocketFactory;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    FileOutputStream fouts = null;&lt;br /&gt;
    System.setProperty(&amp;quot;javax.net.ssl.trustStore&amp;quot;, &amp;quot;clienttrust&amp;quot;);&lt;br /&gt;
    SSLSocketFactory ssf = (SSLSocketFactory) SSLSocketFactory.getDefault();&lt;br /&gt;
    Socket s = ssf.createSocket(&amp;quot;127.0.0.1&amp;quot;, 5432);&lt;br /&gt;
    OutputStream outs = s.getOutputStream();&lt;br /&gt;
    PrintStream out = new PrintStream(outs);&lt;br /&gt;
    InputStream ins = s.getInputStream();&lt;br /&gt;
    BufferedReader in = new BufferedReader(new InputStreamReader(ins));&lt;br /&gt;
    out.println(args[0]);&lt;br /&gt;
    fouts = new FileOutputStream(&amp;quot;result.html&amp;quot;);&lt;br /&gt;
//  fouts = new FileOutputStream(&amp;quot;result.gif&amp;quot;);&lt;br /&gt;
    int kk;&lt;br /&gt;
    while ((kk = ins.read()) != -1) {&lt;br /&gt;
      fouts.write(kk);&lt;br /&gt;
    }&lt;br /&gt;
    in.close();&lt;br /&gt;
    fouts.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  SSL Client Demo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.net.Socket;&lt;br /&gt;
import javax.net.ssl.SSLSocketFactory;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    SSLSocketFactory ssf = (SSLSocketFactory) SSLSocketFactory.getDefault();&lt;br /&gt;
    Socket s = ssf.createSocket(&amp;quot;127.0.0.1&amp;quot;, 5432);&lt;br /&gt;
    BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));&lt;br /&gt;
    String x = in.readLine();&lt;br /&gt;
    System.out.println(x);&lt;br /&gt;
    in.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  SSL Client Session ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.math.BigInteger;&lt;br /&gt;
import java.net.Socket;&lt;br /&gt;
import java.security.cert.Certificate;&lt;br /&gt;
import java.security.cert.X509Certificate;&lt;br /&gt;
import javax.net.ssl.SSLSession;&lt;br /&gt;
import javax.net.ssl.SSLSocket;&lt;br /&gt;
import javax.net.ssl.SSLSocketFactory;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    System.setProperty(&amp;quot;javax.net.ssl.trustStore&amp;quot;, &amp;quot;clienttrust&amp;quot;);&lt;br /&gt;
    SSLSocketFactory ssf = (SSLSocketFactory) SSLSocketFactory.getDefault();&lt;br /&gt;
    Socket s = ssf.createSocket(&amp;quot;127.0.0.1&amp;quot;, 5432);&lt;br /&gt;
    SSLSession session = ((SSLSocket) s).getSession();&lt;br /&gt;
    Certificate[] cchain = session.getPeerCertificates();&lt;br /&gt;
    System.out.println(&amp;quot;The Certificates used by peer&amp;quot;);&lt;br /&gt;
    for (int i = 0; i &amp;lt; cchain.length; i++) {&lt;br /&gt;
      System.out.println(((X509Certificate) cchain[i]).getSubjectDN());&lt;br /&gt;
    }&lt;br /&gt;
    System.out.println(&amp;quot;Peer host is &amp;quot; + session.getPeerHost());&lt;br /&gt;
    System.out.println(&amp;quot;Cipher is &amp;quot; + session.getCipherSuite());&lt;br /&gt;
    System.out.println(&amp;quot;Protocol is &amp;quot; + session.getProtocol());&lt;br /&gt;
    System.out.println(&amp;quot;ID is &amp;quot; + new BigInteger(session.getId()));&lt;br /&gt;
    System.out.println(&amp;quot;Session created in &amp;quot; + session.getCreationTime());&lt;br /&gt;
    System.out.println(&amp;quot;Session accessed in &amp;quot; + session.getLastAccessedTime());&lt;br /&gt;
    BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));&lt;br /&gt;
    String x = in.readLine();&lt;br /&gt;
    System.out.println(x);&lt;br /&gt;
    in.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  SSL Client Verifier ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import javax.net.SocketFactory;&lt;br /&gt;
import javax.net.ssl.SSLSession;&lt;br /&gt;
import javax.net.ssl.SSLSocket;&lt;br /&gt;
import javax.net.ssl.SSLSocketFactory;&lt;br /&gt;
import javax.security.cert.X509Certificate;&lt;br /&gt;
import sun.security.x509.X500Name;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    SocketFactory sf = SSLSocketFactory.getDefault();&lt;br /&gt;
    SSLSocket s = (SSLSocket) sf.createSocket(args[0], Integer.parseInt(args[1]));&lt;br /&gt;
    SSLSession sess = s.getSession();&lt;br /&gt;
    String host = sess.getPeerHost();&lt;br /&gt;
    X509Certificate[] certs = sess.getPeerCertificateChain();&lt;br /&gt;
    String dn = certs[0].getSubjectDN().getName();&lt;br /&gt;
    X500Name name = new X500Name(dn);&lt;br /&gt;
    if (!host.equals(name.getCommonName()))&lt;br /&gt;
      System.out.println(&amp;quot;Warning: Expected &amp;quot; + host + &amp;quot; and got &amp;quot; + name.getCommonName());&lt;br /&gt;
    BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));&lt;br /&gt;
    PrintWriter pw = new PrintWriter(s.getOutputStream());&lt;br /&gt;
    pw.println(&amp;quot;hi&amp;quot;);&lt;br /&gt;
    pw.flush();&lt;br /&gt;
    System.out.println(br.readLine());&lt;br /&gt;
    s.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  SSL Client with javax.net.ssl.trustStore setting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.net.Socket;&lt;br /&gt;
import javax.net.ssl.SSLSocketFactory;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    System.setProperty(&amp;quot;javax.net.ssl.trustStore&amp;quot;, &amp;quot;clienttrust&amp;quot;);&lt;br /&gt;
    SSLSocketFactory ssf = (SSLSocketFactory) SSLSocketFactory.getDefault();&lt;br /&gt;
    Socket s = ssf.createSocket(&amp;quot;127.0.0.1&amp;quot;, 5432);&lt;br /&gt;
    BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));&lt;br /&gt;
    String x = in.readLine();&lt;br /&gt;
    System.out.println(x);&lt;br /&gt;
    in.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  SSLContext and Key manager ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.FileInputStream;&lt;br /&gt;
import java.io.PrintStream;&lt;br /&gt;
import java.net.ServerSocket;&lt;br /&gt;
import java.net.Socket;&lt;br /&gt;
import java.security.KeyStore;&lt;br /&gt;
import javax.net.ssl.KeyManagerFactory;&lt;br /&gt;
import javax.net.ssl.SSLContext;&lt;br /&gt;
import javax.net.ssl.SSLServerSocketFactory;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    SSLContext context;&lt;br /&gt;
    KeyManagerFactory kmf;&lt;br /&gt;
    KeyStore ks;&lt;br /&gt;
    char[] storepass = &amp;quot;newpass&amp;quot;.toCharArray();&lt;br /&gt;
    char[] keypass = &amp;quot;wshr.ut&amp;quot;.toCharArray();&lt;br /&gt;
    String storename = &amp;quot;newstore&amp;quot;;&lt;br /&gt;
    context = SSLContext.getInstance(&amp;quot;TLS&amp;quot;);&lt;br /&gt;
    kmf = KeyManagerFactory.getInstance(&amp;quot;SunX509&amp;quot;);&lt;br /&gt;
    FileInputStream fin = new FileInputStream(storename);&lt;br /&gt;
    ks = KeyStore.getInstance(&amp;quot;JKS&amp;quot;);&lt;br /&gt;
    ks.load(fin, storepass);&lt;br /&gt;
    kmf.init(ks, keypass);&lt;br /&gt;
    context.init(kmf.getKeyManagers(), null, null);&lt;br /&gt;
    SSLServerSocketFactory ssf = context.getServerSocketFactory();&lt;br /&gt;
    ServerSocket ss = ssf.createServerSocket(5432);&lt;br /&gt;
    while (true) {&lt;br /&gt;
      Socket s = ss.accept();&lt;br /&gt;
      PrintStream out = new PrintStream(s.getOutputStream());&lt;br /&gt;
      out.println(&amp;quot;Hi&amp;quot;);&lt;br /&gt;
      out.close();&lt;br /&gt;
      s.close();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  SSL Server Session ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.PrintStream;&lt;br /&gt;
import java.math.BigInteger;&lt;br /&gt;
import java.net.ServerSocket;&lt;br /&gt;
import java.net.Socket;&lt;br /&gt;
import java.security.cert.Certificate;&lt;br /&gt;
import java.security.cert.X509Certificate;&lt;br /&gt;
import javax.net.ssl.SSLServerSocketFactory;&lt;br /&gt;
import javax.net.ssl.SSLSession;&lt;br /&gt;
import javax.net.ssl.SSLSocket;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    System.setProperty(&amp;quot;javax.net.ssl.keyStore&amp;quot;, &amp;quot;lfkeystore2&amp;quot;);&lt;br /&gt;
    System.setProperty(&amp;quot;javax.net.ssl.keyStorePassword&amp;quot;, &amp;quot;wshr.ut&amp;quot;);&lt;br /&gt;
    SSLServerSocketFactory ssf = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();&lt;br /&gt;
    ServerSocket ss = ssf.createServerSocket(5432);&lt;br /&gt;
    while (true) {&lt;br /&gt;
      Socket s = ss.accept();&lt;br /&gt;
      SSLSession session = ((SSLSocket) s).getSession();&lt;br /&gt;
      Certificate[] cchain2 = session.getLocalCertificates();&lt;br /&gt;
      for (int i = 0; i &amp;lt; cchain2.length; i++) {&lt;br /&gt;
        System.out.println(((X509Certificate) cchain2[i]).getSubjectDN());&lt;br /&gt;
      }&lt;br /&gt;
      System.out.println(&amp;quot;Peer host is &amp;quot; + session.getPeerHost());&lt;br /&gt;
      System.out.println(&amp;quot;Cipher is &amp;quot; + session.getCipherSuite());&lt;br /&gt;
      System.out.println(&amp;quot;Protocol is &amp;quot; + session.getProtocol());&lt;br /&gt;
      System.out.println(&amp;quot;ID is &amp;quot; + new BigInteger(session.getId()));&lt;br /&gt;
      System.out.println(&amp;quot;Session created in &amp;quot; + session.getCreationTime());&lt;br /&gt;
      System.out.println(&amp;quot;Session accessed in &amp;quot; + session.getLastAccessedTime());&lt;br /&gt;
      PrintStream out = new PrintStream(s.getOutputStream());&lt;br /&gt;
      out.println(&amp;quot;Hi&amp;quot;);&lt;br /&gt;
      out.close();&lt;br /&gt;
      s.close();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  SSL Server with KeyStore and Key Store Password setting ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.PrintStream;&lt;br /&gt;
import java.net.ServerSocket;&lt;br /&gt;
import java.net.Socket;&lt;br /&gt;
import javax.net.ssl.SSLServerSocketFactory;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    System.setProperty(&amp;quot;javax.net.ssl.keyStore&amp;quot;, &amp;quot;mykeystore&amp;quot;);&lt;br /&gt;
    System.setProperty(&amp;quot;javax.net.ssl.keyStorePassword&amp;quot;, &amp;quot;wshr.ut&amp;quot;);&lt;br /&gt;
    SSLServerSocketFactory ssf = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();&lt;br /&gt;
    ServerSocket ss = ssf.createServerSocket(5432);&lt;br /&gt;
    while (true) {&lt;br /&gt;
      Socket s = ss.accept();&lt;br /&gt;
      PrintStream out = new PrintStream(s.getOutputStream());&lt;br /&gt;
      out.println(&amp;quot;Hi&amp;quot;);&lt;br /&gt;
      out.close();&lt;br /&gt;
      s.close();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  SSL Simple Client ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import java.net.Socket;&lt;br /&gt;
import javax.net.SocketFactory;&lt;br /&gt;
import javax.net.ssl.SSLSocketFactory;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    SocketFactory sf = SSLSocketFactory.getDefault();&lt;br /&gt;
    Socket s = sf.createSocket(args[0], Integer.parseInt(args[1]));&lt;br /&gt;
    BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));&lt;br /&gt;
    PrintWriter pw = new PrintWriter(s.getOutputStream());&lt;br /&gt;
    System.out.println(&amp;quot;Who is Sylvia?&amp;quot;);&lt;br /&gt;
    pw.println(&amp;quot;Who is Sylvia?&amp;quot;);&lt;br /&gt;
    pw.flush();&lt;br /&gt;
    System.out.println(br.readLine());&lt;br /&gt;
    s.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  SSL Simple Server ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.IOException;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import java.net.ServerSocket;&lt;br /&gt;
import java.net.Socket;&lt;br /&gt;
import javax.net.ServerSocketFactory;&lt;br /&gt;
import javax.net.ssl.SSLServerSocketFactory;&lt;br /&gt;
public class MainClass extends Thread {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    ServerSocketFactory ssf = SSLServerSocketFactory.getDefault();&lt;br /&gt;
    ServerSocket ss = ssf.createServerSocket(9096);&lt;br /&gt;
    while (true) {&lt;br /&gt;
      new SSLSimpleServer(ss.accept()).start();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  private Socket sock;&lt;br /&gt;
  public SSLSimpleServer(Socket s) {&lt;br /&gt;
    sock = s;&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    try {&lt;br /&gt;
      BufferedReader br = new BufferedReader(new InputStreamReader(sock.getInputStream()));&lt;br /&gt;
      PrintWriter pw = new PrintWriter(sock.getOutputStream());&lt;br /&gt;
      String data = br.readLine();&lt;br /&gt;
      pw.println(&amp;quot;What is she?&amp;quot;);&lt;br /&gt;
      pw.close();&lt;br /&gt;
      sock.close();&lt;br /&gt;
    } catch (IOException ioe) {&lt;br /&gt;
      // Client disconnected&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  SSL Socket Client ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import java.net.*;&lt;br /&gt;
import javax.net.ssl.*;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  private static final String HOST = &amp;quot;localhost&amp;quot;;&lt;br /&gt;
  private static final int PORT = 8080;&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    SSLSocketFactory sf = (SSLSocketFactory) SSLSocketFactory.getDefault();&lt;br /&gt;
    Socket s = sf.createSocket(HOST, PORT);&lt;br /&gt;
    OutputStream out = s.getOutputStream();&lt;br /&gt;
    out.write(&amp;quot;\nConnection established.\n\n&amp;quot;.getBytes());&lt;br /&gt;
    out.flush();&lt;br /&gt;
    int theCharacter = 0;&lt;br /&gt;
    theCharacter = System.in.read();&lt;br /&gt;
    while (theCharacter != &amp;quot;~&amp;quot;) // The &amp;quot;~&amp;quot; is an escape character to exit&lt;br /&gt;
    {&lt;br /&gt;
      out.write(theCharacter);&lt;br /&gt;
      out.flush();&lt;br /&gt;
      theCharacter = System.in.read();&lt;br /&gt;
    }&lt;br /&gt;
    out.close();&lt;br /&gt;
    s.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  SSL Socket Server ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import java.net.*;&lt;br /&gt;
import javax.net.ssl.*;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  private static final int PORT = 8080;&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    SSLServerSocketFactory ssf = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();&lt;br /&gt;
    ServerSocket ss = ssf.createServerSocket(PORT);&lt;br /&gt;
    Socket s = ss.accept();&lt;br /&gt;
    BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));&lt;br /&gt;
    String line = null;&lt;br /&gt;
    while (((line = in.readLine()) != null)) {&lt;br /&gt;
      System.out.println(line);&lt;br /&gt;
    }&lt;br /&gt;
    in.close();&lt;br /&gt;
    s.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Sun SSL Socket Client ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import java.net.*;&lt;br /&gt;
import java.security.*;&lt;br /&gt;
import javax.net.ssl.SSLSocketFactory;&lt;br /&gt;
import com.sun.net.ssl.SSLContext;&lt;br /&gt;
import com.sun.net.ssl.TrustManagerFactory;&lt;br /&gt;
import com.sun.net.ssl.TrustManager;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  private static final String HOST = &amp;quot;localhost&amp;quot;;&lt;br /&gt;
  private static final int PORT = 8080;&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    char[] passphrase = &amp;quot;sasquatch&amp;quot;.toCharArray();&lt;br /&gt;
    KeyStore keystore = KeyStore.getInstance(&amp;quot;JKS&amp;quot;);&lt;br /&gt;
    keystore.load(new FileInputStream(&amp;quot;.keystore&amp;quot;), passphrase);&lt;br /&gt;
    TrustManagerFactory tmf = TrustManagerFactory.getInstance(&amp;quot;SunX509&amp;quot;);&lt;br /&gt;
    tmf.init(keystore);&lt;br /&gt;
    SSLContext context = SSLContext.getInstance(&amp;quot;TLS&amp;quot;);&lt;br /&gt;
    TrustManager[] trustManagers = tmf.getTrustManagers();&lt;br /&gt;
    context.init(null, trustManagers, null);&lt;br /&gt;
    SSLSocketFactory sf = context.getSocketFactory();&lt;br /&gt;
    Socket s = sf.createSocket(HOST, PORT);&lt;br /&gt;
    OutputStream out = s.getOutputStream();&lt;br /&gt;
    out.write(&amp;quot;\nConnection established.\n\n&amp;quot;.getBytes());&lt;br /&gt;
    int theCharacter = 0;&lt;br /&gt;
    theCharacter = System.in.read();&lt;br /&gt;
    while (theCharacter != &amp;quot;~&amp;quot;) // The &amp;quot;~&amp;quot; is an escape character to exit&lt;br /&gt;
    {&lt;br /&gt;
      out.write(theCharacter);&lt;br /&gt;
      out.flush();&lt;br /&gt;
      theCharacter = System.in.read();&lt;br /&gt;
    }&lt;br /&gt;
    out.close();&lt;br /&gt;
    s.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Sun SSL Socket Server ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.*;&lt;br /&gt;
import java.net.*;&lt;br /&gt;
import java.security.*;&lt;br /&gt;
import javax.net.ssl.*;&lt;br /&gt;
import com.sun.net.ssl.*;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  private static final int PORT = 8080;&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    char[] passphrase = &amp;quot;password&amp;quot;.toCharArray();&lt;br /&gt;
    KeyStore keystore = KeyStore.getInstance(&amp;quot;JKS&amp;quot;);&lt;br /&gt;
    keystore.load(new FileInputStream(&amp;quot;.keystore&amp;quot;), passphrase);&lt;br /&gt;
    KeyManagerFactory kmf = KeyManagerFactory.getInstance(&amp;quot;SunX509&amp;quot;);&lt;br /&gt;
    kmf.init(keystore, passphrase);&lt;br /&gt;
    SSLContext context = SSLContext.getInstance(&amp;quot;TLS&amp;quot;);&lt;br /&gt;
    KeyManager[] keyManagers = kmf.getKeyManagers();&lt;br /&gt;
    context.init(keyManagers, null, null);&lt;br /&gt;
    SSLServerSocketFactory ssf = context.getServerSocketFactory();&lt;br /&gt;
    ServerSocket ss = ssf.createServerSocket(PORT);&lt;br /&gt;
    Socket s = ss.accept();&lt;br /&gt;
    BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));&lt;br /&gt;
    String line = null;&lt;br /&gt;
    while (((line = in.readLine()) != null)) {&lt;br /&gt;
      System.out.println(line);&lt;br /&gt;
    }&lt;br /&gt;
    in.close();&lt;br /&gt;
    s.close();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Use SSLServerSocketFactory to create a SSL Server ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.PrintStream;&lt;br /&gt;
import java.net.ServerSocket;&lt;br /&gt;
import java.net.Socket;&lt;br /&gt;
import javax.net.ssl.SSLServerSocketFactory;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) throws Exception {&lt;br /&gt;
    SSLServerSocketFactory ssf = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();&lt;br /&gt;
    ServerSocket ss = ssf.createServerSocket(5432);&lt;br /&gt;
    while (true) {&lt;br /&gt;
      Socket s = ss.accept();&lt;br /&gt;
      PrintStream out = new PrintStream(s.getOutputStream());&lt;br /&gt;
      out.println(&amp;quot;Hi&amp;quot;);&lt;br /&gt;
      out.close();&lt;br /&gt;
      s.close();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>