Link to home
Start Free TrialLog in
Avatar of rs_akella
rs_akella

asked on

https connection from url object using JSSE

I'm trying to open a url connection using url object by passing https protocol request.  But I'm getting "untrusted Server certificate chain" exception.  I've been to java forum I tried lot many things to get rid of this exception.  But I couldn't make it possible.

Environment is as follows:
Application Server is : WebLogic Application Server
normal java client.
Using JSSE on client side inorder to call https protocol from url.
I'm trying use url.openConnection from a java client to weblogic application server.
Any suggestions appriciated.
Avatar of btilley
btilley

Do you have SSL configured to run on your weblogic server?
listening ...
What certification did you install in server? Is it self signed certification or from root CA?
ASKER CERTIFIED SOLUTION
Avatar of kirtish_java
kirtish_java

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of rs_akella

ASKER

I'm getting this exception on client side. Not on server side. I'm getting this initially when client sends first packet of data to server.

This is the scenario.
First server gets the request from client, server sends a certificate to client.  Client checks whether the certificate from server is a trusted one. That's when I'm getting this exception on client side.

Here is the sample code snippet
import java.net.*;
import java.io.*;

/*
 * This example illustrates using a URL to access resources
 * on a secure site.
 *
 * To use Sun's reference implementation of HTTPS protocol, Please set
 * the following Java system property:
 *
 *    java.protocol.handler.pkgs = com.sun.net.ssl.internal.www.protocol
 *
 * If you are running inside a firewall, please also set the following
 * Java system properties to the appropriate value:
 *
 *   https.proxyHost = <secure proxy server hostname>
 *   https.proxyPort = <secure proxy server port>
 *
 */

public class URLReader
{
    public static void main(String[] args)
    {
        try
        {
            URL verisign = new URL("https://192.168.0.15:7002/");
            BufferedReader in = new BufferedReader(
                        new InputStreamReader(
                        verisign.openStream()));

            String inputLine;

            while((inputLine = in.readLine()) != null)
                System.out.println(inputLine);
            in.close();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }    
    }
}

And Here is the StackTrace ---------
E:\jsse1.0.1\samples\urls>java -cp .;E:\jsse1.0.1\lib\jsse.jar;E:\jsse1.0.1\lib\
jcert.jar;E:\jsse1.0.1\lib\jnet.jar -Dhttps.proxyHost=192.168.0.15 -Dhttps.proxy
Port=8080 -Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol URL
Reader
javax.net.ssl.SSLException: untrusted server cert chain
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.a([DashoPro-V1.2-120198
])
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage([DashoPr
o-V1.2-120198])
        at com.sun.net.ssl.internal.ssl.Handshaker.process_record([DashoPro-V1.2
-120198])
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
        at com.sun.net.ssl.internal.ssl.AppOutputStream.write([DashoPro-V1.2-120
198])
        at java.io.OutputStream.write(OutputStream.java:65)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake([DashoPro-V
1.2-120198])
        at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.doConnect([Da
shoPro-V1.2-120198])
        at com.sun.net.ssl.internal.www.protocol.https.NetworkClient.openServer(
[DashoPro-V1.2-120198])
        at com.sun.net.ssl.internal.www.protocol.https.HttpClient.l([DashoPro-V1
..2-120198])
        at com.sun.net.ssl.internal.www.protocol.https.HttpClient.<init>([DashoP
ro-V1.2-120198])
        at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.<init>([Dasho
Pro-V1.2-120198])
        at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V
1.2-120198])
        at com.sun.net.ssl.internal.www.protocol.https.HttpsClient.a([DashoPro-V
1.2-120198])
        at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.connec
t([DashoPro-V1.2-120198])
        at com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnection.getInp
utStream([DashoPro-V1.2-120198])
        at java.net.URL.openStream(URL.java:818)
        at URLReader.main(URLReader.java, Compiled Code)
StackTrace Ends Here -----------------