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...