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.

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.

book

Article ID: KB0092049

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks Plug-in for Mobile Integration -
Not Applicable -

Description

Description:
While using a public/private key in Mobile Apps (Andriod or iOS) and TIBCO ActiveMatrix BusinessWorks Plug-in for Mobile Integration (BWMI), when the palette is used to send notification to anmobile device, an error is thrown.

Symptoms:

The following error is thrown in TIBCO ActiveMatrix BusinessWorks (BW) engine logs or Designer log (run from Designer).

 

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

Cause:
The certifcates/keystore are not present in the classpath set in the property " bw.mi.pns.apns.ssl.pkcs.keystore.file.resource" under the bwmi.properties file.

Issue/Introduction

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.

Resolution

The property bw.mi.pns.apns.ssl.pkcs.keystore.file.resource (in bwmi.properties) refers to the keystore resource on the class path. BWMI expects the keystore to be located under com/tibco/bw/mi/certs directory on the class path, as specified by the default value of the property. Change the property value to point it to the resource correctly. You can either create the package structure com/tibco/bw/mi/certs under <bw-home>/hotfix/lib (as hotfix/lib is by default on the classpath) and place the keystore under it or simply place the keystore under the <bw-home>/hotfix/lib directly and change the property value to have the your keystore file name alone. For example, if the keystore file name is mi-prod-keystore.p12 and you place it under <bw-home>/hotfix/lib, then the property should defined as follows:

bw.mi.pns.apns.ssl.pkcs.keystore.file.resource=mi-prod-keystore.p12

On the other hand, if you place the keystore file under a package com/tibco/bw/mi/certs under hotfix/lib or any other directory on the class path, then the property should be defined as follows:

bw.mi.pns.apns.ssl.pkcs.keystore.file.resource=com/tibco/bw/mi/certs/mi-prod-keystore.p12

Additional Information