H
HugeBob
Hi All,
I'm trying to import the public key of a secure site (https). But, I'm
having a lot of difficulty getting this to work. The JRE is on a Unix
box (SunOS 5.10). From my Windows XP workstation, I went to the site
with IE and retrieved the public key in DER Binary Format and saved it
to a *.cer file on the Unix box (via Samba share). I then used the
keytool to import it into the keystore at /{jrun_root}/jre/lib/
security/cacerts. I verified that it was in there with the keytool -
list -keystore cacerts command. Here's the code I'm trying to run.
But, I get a java.net.ssl.SSLHandshakeException. Can anyone lend some
guidance here?
import java.net.*;
import java.io.*;
import java.util.*;
import java.net.ssl.*;
public class WebService {
public static String sessionCookie;
public static void main(String [] args) {
try {
System.setProperty("javax.net.ssl.keyStore",
"path_to_keystore");
System.setProperty("javax.net.ssl.keyStorePassword",
"keystorepassword");
System.setProperty("javax.net.ssl.keyStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore",
"path_to_trustkeystore");
System.setProperty("javax.net.ssl.trustStorePassword",
"trustStorePassword");
URL url = new URL("https://somesecureservice.somewhere.com/
resource");
HttpsURLConnection conn = (HttpsURLConnection)
url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Accept", "text,xml");
conn.setRequestProperty("Content-Type", "text,xml");
if (sessionCookie != null) {
conn.setRequestProperty("Cookie", sessionCookie);
}
OutputStreamWriter wr = new
OutputStreamWriter(conn.getOutputStream());
wr.write("<xmltag xmlns:cr=\"http://someservice.com/something\">");
wr.write("<xmltaga>somevalue</xmltaga>");
wr.write("</xmltag");
wr.flush();
BufferedReader rd = new BufferedReader(new
InputStreamReader(conn.getInputStream()));
System.out.println(conn.getResponseCode());
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
wr.close();
rd.close();
}
catch (Exception t) {
t.printStackTrace();
}
}
}
I'm trying to import the public key of a secure site (https). But, I'm
having a lot of difficulty getting this to work. The JRE is on a Unix
box (SunOS 5.10). From my Windows XP workstation, I went to the site
with IE and retrieved the public key in DER Binary Format and saved it
to a *.cer file on the Unix box (via Samba share). I then used the
keytool to import it into the keystore at /{jrun_root}/jre/lib/
security/cacerts. I verified that it was in there with the keytool -
list -keystore cacerts command. Here's the code I'm trying to run.
But, I get a java.net.ssl.SSLHandshakeException. Can anyone lend some
guidance here?
import java.net.*;
import java.io.*;
import java.util.*;
import java.net.ssl.*;
public class WebService {
public static String sessionCookie;
public static void main(String [] args) {
try {
System.setProperty("javax.net.ssl.keyStore",
"path_to_keystore");
System.setProperty("javax.net.ssl.keyStorePassword",
"keystorepassword");
System.setProperty("javax.net.ssl.keyStoreType", "JKS");
System.setProperty("javax.net.ssl.trustStore",
"path_to_trustkeystore");
System.setProperty("javax.net.ssl.trustStorePassword",
"trustStorePassword");
URL url = new URL("https://somesecureservice.somewhere.com/
resource");
HttpsURLConnection conn = (HttpsURLConnection)
url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("Accept", "text,xml");
conn.setRequestProperty("Content-Type", "text,xml");
if (sessionCookie != null) {
conn.setRequestProperty("Cookie", sessionCookie);
}
OutputStreamWriter wr = new
OutputStreamWriter(conn.getOutputStream());
wr.write("<xmltag xmlns:cr=\"http://someservice.com/something\">");
wr.write("<xmltaga>somevalue</xmltaga>");
wr.write("</xmltag");
wr.flush();
BufferedReader rd = new BufferedReader(new
InputStreamReader(conn.getInputStream()));
System.out.println(conn.getResponseCode());
String line;
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
wr.close();
rd.close();
}
catch (Exception t) {
t.printStackTrace();
}
}
}