Win a copy of Think Java: How to Think Like a Computer Scientist this week in the Java in General forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Default keystore(s) used for HTTPS?

 
David Norman
Greenhorn
Posts: 2
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm trying to do a get over https to one of our servers. It works from a browser, but not from my Java code (running on Java version 1.5.0), where I get the exception:

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

(I can connect to other urls using https.)

As I understand it, the error is occurring because I don't have a certificate from the CA that signed the server certificate. So I've exported the CA root certificate from Internet Explorer and imported it into the keystore of my jre using keytool.

However, I still get the same exception and I'm wondering if the SSL library and I are using the same keystore.

The keystore I imported the certificate into is lib\security\cacerts relative to the jre path from the java.home property.

Whether I set javax.net.ssl.trustStore and javax.net.ssl.trustStorePassword or not makes no difference. I understand there is search algorithm that uses the javax.net.ssl.trustStore property but will ultimately use lib\security\cacerts.

Can anyone see any mistakes in my reasoning or alternatives I could try? I guess I could put the CA certificate in a separate keystore and specify that via javax.net.ssl.trustStore...

My actual code is just this:



Thanks,

David
 
Himanshu Kansal
Ranch Hand
Posts: 257
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Did you find a solution? I've got this exact same issue. I'm using a Mac.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic