Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

SSLCertificateException: None of the TrustManagers allowed

SA-11241

Summary



After upgrading to Pega 7.1.8 from PRPC 6.3 SP1, you experience certificate errors while trying to invoke Connect-SOAP.

Error Messages



[6/10/15 15:07:46:119 CDT] 00000023 stdout        Z   2015-06-10 15:07:46,109 [  PegaRULES-Batch-50] [  STANDARD] [] [] (      internal.mgmt.Executable) ERROR Rule-Connect-SOAP - Exception
com.pega.pegarules.pub.services.ResourceUnavailableException: SOAP service failed
 at com.pegarules.generated.activity.ra_action_invokeaxis2_e0a499f26a95053ac6300b525bd7d41f.step15_circum0(ra_action_invokeaxis2_e0a499f26a95053ac6300b525bd7d41f.java:3992)
 at com.pegarules.generated.activity.ra_action_invokeaxis2_e0a499f26a95053ac6300b525bd7d41f.perform(ra_action_invokeaxis2_e0a499f26a95053ac6300b525bd7d41f.java:308)
 at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3500)
 at com.pegarules.generated.activity.ra_action_invoke_c28ff8c27ac24045d30f5561679549d1.step8_circum0(ra_action_invoke_c28ff8c27ac24045d30f5561679549d1.java:1037)
 at com.pegarules.generated.activity.ra_action_invoke_c28ff8c27ac24045d30f5561679549d1.perform(ra_action_invoke_c28ff8c27ac24045d30f5561679549d1.java:189)
 ...
Caused by:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: None of the TrustManagers allowed for trust of the SSL certificate(s) provided by the remote server to which this client attempted a connection.
 at com.ibm.jsse2.o.a(o.java:19)
 ...
 at com.pega.apache.axis2.engine.AxisEngine.send(AxisEngine.java:438)
 at com.pega.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
 at com.pega.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
 at com.pega.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
 at com.pegarules.generated.activity.ra_action_invokeaxis2_e0a499f26a95053ac6300b525bd7d41f.step14_circum0(ra_action_invokeaxis2_e0a499f26a95053ac6300b525bd7d41f.java:3891)
 at com.pegarules.generated.activity.ra_action_invokeaxis2_e0a499f26a95053ac6300b525bd7d41f.perform(ra_action_invokeaxis2_e0a499f26a95053ac6300b525bd7d41f.java:291)
 ... 20 more
Caused by:
java.security.cert.CertificateException: None of the TrustManagers allowed for trust of the SSL certificate(s) provided by the remote server to which this client attempted a connection.
 at com.pega.pegarules.integration.engine.internal.ssl.CompositeX509TrustManager.checkServerTrusted(CompositeX509TrustManager.java:161)
 at com.ibm.jsse2.lb.a(lb.java:471)



Steps to Reproduce



Not Applicable

Root Cause



The root cause of this problem is a defect or misconfiguration in the operating environment. To start with, for any SSL certificate/handshake related issue, enable debug on:

1. Add “-Djava.net.debug=all” JVM argument to print all the transaction during SSL handshake.
2. Enable DEBUG on Pega package “com.pega.pegarules.integration.engine.internal.ssl”

It's a good practice to add keystore and truststore at the Pega level now for connectors because it's easier maintaince and portability. In this particular error scenario, the truststore was set at the IBM Websphere JVM level. Investigating the stack trace it was clear that the signer certificate and each of its intermediate certificates in the chain from the specified target host (external SOAP Endpoint) has not been located in the client Pega node’s (JVM’s) truststore.
When using the certificate from another entity (JVM), make sure to use the certificate chain to obtain the root CA certificate. The certificate chain, also known as the certification path, is a list of certificates used to authenticate an entity (JVM). The chain, or path, begins with the certificate of that entity, and each certificate in the chain is signed by the entity identified by the next certificate in the chain. The chain terminates with a root CA certificate. The root CA certificate is always signed by the CA itself. The signatures of all certificates in the chain must be verified until the root CA certificate is reached.


Resolution



Make the following change to the operating environment: Ensure that the signer certificates and each of its intermediate certificates in the certification path are imported to the Pega’s IBM WebSphere JVM’s truststore - cacerts. The same should be done for all the WebSphere JVMs participating in SSL communication on your PRPC cluster.

Published July 7, 2015 - Updated October 8, 2020

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us