2 Replies Latest reply on Dec 1, 2011 8:29 AM by guinotphil

    PKIX path building failed from Module

    guinotphil

      Hello,

       

      I've been set up a module which need to connect to a WebService via HTTPS.

       

      On connect I obtain the following exception :

       

      Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPath

      BuilderException: unable to find valid certification path to requested target

              at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174) [:1.6]

              at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1699) [:1.6]

              at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:241) [:1.6]

              at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:235) [:1.6]

              at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1206) [:1.6]

              at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:136) [:1.6]

              at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593) [:1.6]

              at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529) [:1.6]

              at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893) [:1.6]

              at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138) [:1.6]

              at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165) [:1.6]

              at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149) [:1.6]

              at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) [:1.6]

              at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) [:1.6]

              at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133) [:1.6]

              at mypackage.MyClient.sendRequest(MyClient.java:48)

              ... 93 more

      Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find vali

      d certification path to requested target

              at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:323) [:1.6.0_27]

              at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:217) [:1.6.0_27]

              at sun.security.validator.Validator.validate(Validator.java:218) [:1.6.0_27]

              at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126) [:1.6]

              at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209) [:1.6]

              at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249) [:1.6]

              at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1185) [:1.6]

              ... 105 more

      Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

              at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174) [:1.6.0_27]

              at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238) [:1.6.0_27]

              at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:318) [:1.6.0_27]

              ... 111 more

       

       

       

      I deployed the jar with the application instead of using a module and it works well. I guess I must miss something in the module.xml. Here's mine:

       

      <module xmlns="urn:jboss:module:1.0" name="my.module">

          <resources>

              <!-- Insert resources here -->

          </resources>

       

       

          <dependencies>

                      <module name="javax.api"/>

                      <module name="org.apache.commons.codec"/>

          </dependencies>

      </module>

       

       

      Thank you for your help