G
Gast
Gast
Hi,
ich möchte die Daten, die während des Handshakes bei SSL-Verbindungsaufbau zwischen Client und Server ausgetauscht werden, visualisieren.
Wenn man den Code:
z.B. mit
Kann ich diese Ausgabe irgendwie per Code abfangen und z.B. in einem String im Programm abspeichern?
ich möchte die Daten, die während des Handshakes bei SSL-Verbindungsaufbau zwischen Client und Server ausgetauscht werden, visualisieren.
Wenn man den Code:
Code:
import java.net.*;
import java.io.*;
import javax.net.ssl.*;
import java.security.cert.Certificate;
public class SSLSocketClient {
public static void main(String[] args) throws Exception {
// Install the all-trusting trust manager
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
SSLSocketFactory factory =sc.getSocketFactory();
SSLSocket socket =(SSLSocket)factory.createSocket(args[0], 443);
PrintWriter out = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())));
out.println("GET / HTTP/1.0");
out.println();
out.flush();
if (out.checkError()) System.out.println("SSLSocketClient: java.io.PrintWriter error");
/*BufferedReader in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();*/
out.close();
socket.close();
}
catch (Exception e) {
System.out.println(e);
}
}
}
ausführt, dann werden die Daten des Handshakes in der Konsole ausgegeben.java -Djavax.net.debug=ssl SSLSocketClient amazon.de
Kann ich diese Ausgabe irgendwie per Code abfangen und z.B. in einem String im Programm abspeichern?