Connecting to https with jdk1.5 throwing InvalidAlgorithmParameterException

Hi,

My current system has jdk1.3, weblogic7.1 and axis1.1.

I have a simple class in java which I use to connect to https://*.jsp.

Here is the sample code.

System.setProperty("javax.net.ssl.trustStore","/usr/local/client.keystore");

System.setProperty"java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol");

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

System.setProperty("java.security.egd","file:/dev/urandom");

URL url =new URL("https://xyz.com/index.jsp");

InputStreamReader isr =new InputStreamReader(url.openStream());

char[] buf =newchar[1024];

int nread;

while ((nread = isr.read(buf, 0, buf.length)) > 0)

System.out.print(new String(buf, 0, nread));

System.out.flush();

This code works well in jdk1.3 with jsse.jar, jnet.jar, jcert.jar in the classpath and a keystore which has a trusted entry for https://xyz.com/

I use the first 4lines of the code in a Axis Client to transfer SOAP msgs in https protocol.

Now I am migrating to JDK1.5, WebLogic9.1 and Axis1.3.

I have the same keystore. I do not have jsse.jar, jnet.jar, jcert.jar because jdk1.5 has JSSE.

This same set of code is giving exception in JDK1.5.

Any Solution?

Thanks

Senthil

Here is the exception from the stack trace

Exception in thread "main" javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trust

Anchors parameter must be non-empty

at com.sun.net.ssl.internal.ssl.Alerts.getSSLExceptionAlerts.java:166)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1476)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1443)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1426)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1045)

at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:402)

at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:170)

at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:913)

at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)

at java.net.URL.openStream(URL.java:1007)

at axistest.URLReader.main(URLReader.java:24)

Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:56)

at sun.security.validator.Validator.getInstance(Validator.java:146)

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:105)

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:167)

at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(SSLContextImpl.java:320)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:840)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:106)

at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:495)

at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:433)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:815)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1025)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1038)

[4272 byte] By [matix123a] at [2007-10-2 14:23:26]
# 1
I have se same problem.I do a System.setProperty("javax.net.ssl.trustStore", <path_filetruststore>)and I have the same error.Can you tell me if you revolve this problem? how?
elisa00a at 2007-7-13 12:42:16 > top of Java-index,Security,Java Secure Socket Extension (JSSE)...