|
import javax.net.ssl.*;
import java.io.*;
import java.security.KeyStore;
public class SimpleTLSServer {
public static void main(String[] args) {
try {
// Set up the key store
System.setProperty("javax.net.ssl.keyStore", "keystore.p12");
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStorePassword", "tmztmz");
// Load the keystore
KeyStore keyStore = KeyStore.getInstance("PKCS12");
FileInputStream fileInputStream = new FileInputStream(System.getProperty("javax.net.ssl.keyStore"));
keyStore.load(fileInputStream, System.getProperty("javax.net.ssl.keyStorePassword").toCharArray());
// Create the key manager factory
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keyStore, System.getProperty("javax.net.ssl.keyStorePassword").toCharArray());
// Create the SSL context
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyManagerFactory.getKeyManagers(), null, null);
// Create the server socket
SSLServerSocketFactory sslServerSocketFactory = sslContext.getServerSocketFactory();
SSLServerSocket sslServerSocket = (SSLServerSocket) sslServerSocketFactory.createServerSocket(32345);
// Wait for connections
while (true) {
SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
// Send the response
PrintWriter out = new PrintWriter(sslSocket.getOutputStream(), true);
out.println("Hola mundo!");
// Close the connection
sslSocket.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
|