Why is my Java app unable to find a valid certification path?


I see the error javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target


This indicates the file /app/.jdk/jre/lib/security/cacerts on your dyno does not have the necessary certificates need to trust a service you are invoking. You can customize this file by creating a .jdk-overlay/jre/lib/security/cacerts file in your repo, as describe in this Customizing the JDK on Dev Center.

Very often you can use the cacerts in your local JDK installation at $JAVA_HOME/jre/lib/security/cacerts.