Skip to main content

Java

Java Certificate Checking

SSLPoke

In order to check if java correctly handles certs presented by web services, SSLPoke can be used.
Add the following code to a file called SSLPoke.java

import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import java.io.*;

/** Establish a SSL connection to a host and port, writes a byte and
* prints the response. See
* http://confluence.atlassian.com/display/JIRA/Connecting+to+SSL+services
*/
public class SSLPoke {
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("Usage: "+SSLPoke.class.getName()+" <host> <port>");
System.exit(1);
}
try {
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket(args[0], Integer.parseInt(args[1]));

InputStream in = sslsocket.getInputStream();
OutputStream out = sslsocket.getOutputStream();

// Write a test byte to get a reaction :)
out.write(1);

while (in.available() > 0) {
System.out.print(in.read());
}
System.out.println("Successfully connected");

} catch (Exception exception) {
exception.printStackTrace();
}
}
}

Then run the following;

javac SSLPoke.java
java SSLPoke <hostname> <port>