// keytool -genkeypair -keystore key -keyalg RSA
import java.net.ServerSocket;
import java.net.Socket;
import javax.net.ServerSocketFactory;
import javax.net.ssl.SSLServerSocket;
import javax.net.ssl.SSLServerSocketFactory;
import javax.net.ssl.SSLSocket;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
public class SSLServer
{
public static void main(String[] args)
{
try {
System.setProperty("javax.net.ssl.keyStore", "key");
System.setProperty("javax.net.ssl.keyStorePassword", "abcd1234");
ServerSocketFactory ssl_server_socket_factory =
SSLServerSocketFactory.getDefault();
ServerSocket server =
ssl_server_socket_factory.createServerSocket(5566);
Socket client = server.accept();
InputStream input_stream = client.getInputStream();
InputStreamReader reader = new InputStreamReader(input_stream);
BufferedReader buffered_reader = new BufferedReader(reader);
while (true) {
String msg = buffered_reader.readLine();
if (!(null == msg)) {
System.out.println(msg);
} else {
break;
}
}
} catch (Exception exception) {
exception.printStackTrace();
}
}
}
SSLClient:
// use the same key as Server
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import javax.net.SocketFactory;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
public class SSLClient
{
public static void main(String[] args)
{
try {
System.setProperty("javax.net.ssl.trustStore", "key");
System.setProperty("javax.net.ssl.trustStorePassword", "abcd1234");
SocketFactory ssl_socket_factory = SSLSocketFactory.getDefault();
Socket server = ssl_socket_factory.createSocket("localhost",
5566);
InputStream input_stream = System.in;
InputStreamReader reader = new InputStreamReader(input_stream);
BufferedReader buffered_reader = new BufferedReader(reader);
OutputStream output_stream = server.getOutputStream();
OutputStreamWriter writer = new OutputStreamWriter(output_stream);
BufferedWriter buffered_writer = new BufferedWriter(writer);
while (true) {
String msg = buffered_reader.readLine();
if (!(null == msg)) {
buffered_writer.write(msg + '\n');
buffered_writer.flush();
} else {
break;
}
}
} catch (Exception exception) {
exception.printStackTrace();
}
}
}