SSL Handshake issue when running using a JAR - java

I am facing an issue while trying to run a RestClient through Java.
I am using Apache HttpClient for building a rest client
I have added the required certificates in the jdk cacerts file and also checked that they are present there.
Now when I am running my code from eclipse than the handshake is happening correctly without any error and I am able to send a POST request.
Now when I create a runnable jar file from eclipse with all jars packaged in it than while running I am encountering the error
Error Occurred: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Can you all please help me in resolving this.

Run your application with the following option:
java -Djava.security.debug=all ...
This will turn debugging on.
I'm assuming that your are running the jar file as a standalone application. If that is the case, the cacerts maybe different.

Related

javax.net.ssl.SSLHandshakeException:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
My spring boot application communicate to a remote https url and it gives the above mentioned error while hitting a POST request.
I went through multiple stackoverflow posts for the same topic.
Installed/imported required certificates using keytool and restarted JVM. But that didn't resolve my issue. The error message is the same, however the root cause is different here apart from importing certs. Just wanted to post this as new question since I have been trying for last couple of days without any luck what so ever!
This is not a spring boot related issue. I figured out the issue was with JDK. Default Oracle version installed in the system added wrong JRE path to environment variable. I have pointed it to correct JDK version and imported certs there. That resolved the issue. Thank you #Jens for the helpful input.

Self-signed Certificate - Unable to connect using ANT Build

I'm trying to connect to all the links in a particular webpage and get the response to see if the link is broken.
Some of the links are SSL that too self-certified.
So, I've followed the procedure of adding the certificate to trust store. After that it worked fine, when I tested the same in Eclipse(it returned OK/200).
But, when I build and run the project using ANT in command line, the same exception appears.
And it is weird that it doesn't happen when I build using the same xml through Eclipse; it simply works!
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
As per my previous comments Java installs a JRE alongside the JDK which in turn also has a JRE installed. Thus if you are not sure which one is used you can try to add the certificate into jre\lib\security\cacerts and jdk1.x.0_xx\jre\lib\security\cacerts.

"PKIX path building failed: unable to find valid certification path to requested target" Only in release version

The issue is something tricky. I tried to connect my war file to a Active Directory via LDAPS. While running with Debug Mode from IntelliJ IDEA, the code is working perfectly fine.
When I Install the war files in same or different machine, am facing this error.
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
The certificates are self-signed. I have added the CA.crt in truststore.jks, LDAP.cer in cacerts. I also tried adding in the `jssecacerts', but same result.
Note: Am using Apache Shiro framework.
How to avoid this error? Why it is not coming in the debug mode?
This is not a Shiro problem. It is a problem with your certificates. I suspect your IDE may be using a different Java install than where your deployed WAR is executing from.
This exception has been handled previously How to ignore PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException?.
Also, I found this article useful PKIX path building failed: SunCertPathBuilderException: unable to find valid certification path to requested target..
Definitely its problem with certificates. Thing that worked for me was, placing required certificate in C -> program files-> java -> jre -> lib -> security location. After pasting cerificate at this loaction, build successful
If you are using VPN or a forward proxy, you just need to add the certificate of your proxy to Java cacerts.
check this answer on how to do that. https://stackoverflow.com/a/9619478/4144572

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

I am trying to connect to a mail server and read my inbox. My code works for gmail but does not seem to work with my exchange server because of the error:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
I have tried the following as per my research:
1. downloaded the InstallCert.java and ran the folllowing command:
java InstallCert mail.simbatech.biz:993
and imported the one certificate that came in, I afterwards copied the jssecacerts file to jre/lib/security directory of my java Installation but the same error still persists. Is there Any other way to do this?
It sounds like you're doing the right things, but apparently your application is not using the certificate file you created. Where is your application running? If it's running in an application server, the server may be overriding the trust store configuration and may thus be ignoring your jssecacerts file. Try enabling additional debug output as described in the JavaMail FAQ.

Intellij IDEA - Webservices client from WSDL with certificates

I am somewhat new to SSL/TLS and Java trust/keystores. I am attempting to generate a client to consume a web service from a IIS-hosted WSDL file. This worked fine before the service was configured to require certificates. I now receive a Wsdl url connection exception.
In an attempt to bypass this, I saved a local copy of the WSDL via IE (with the appropriate certs in place via the Certificates MMC snap-in). I then attempted to point IDEA to that location (file:/C:/projects/wsdl/wsdlname.wsdl).
This fails with the following error messages:
parsing WSDL...
[ERROR] sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid
certification path to requested target unknown location
[ERROR] invalid entity name: "Auth" (in namespace: "******")
line 0 of unknown location
Note: I've starred out the namespace.
Is there a way to configure IntelliJ IDEA to be able to present a valid certificate if I want to use the generation utility/wizard?
Is there a potential issue with the web service that is causing even the local WSDL import to fail?
Thanks in advance.
It should help if you install the certificate into JVM that is used to run IDEA via keytool.

Categories