unable to find valid certification path to requested target
Asked by Dharmendra Shelare:

at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:98)  
at org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSource.java:266)  
at org.springframework.ldap.core.support.AbstractContextSource.getContext(AbstractContextSource.java:106)  
at org.springframework.ldap.core.support.AbstractContextSource.getReadWriteContext(AbstractContextSource.java:138)  
at org.springframework.ldap.transaction.compensating.manager.TransactionAwareContextSourceProxy.getReadWriteContext(TransactionAwareContextSourceProxy.java:94)  
at org.springframework.ldap.transaction.compensating.manager.TransactionAwareContextSourceProxy.getReadOnlyContext(TransactionAwareContextSourceProxy.java:65)  
at org.springframework.ldap.core.LdapTemplate.executeReadOnly(LdapTemplate.java:792)  
at org.springframework.ldap.core.LdapTemplate.lookup(LdapTemplate.java:834)  
at com.atlassian.crowd.directory.ldap.LdapTemplateWithClassLoaderWrapper$3.call(LdapTemplateWithClassLoaderWrapper.java:77)  
at com.atlassian.crowd.directory.ldap.LdapTemplateWithClassLoaderWrapper.invokeWithContextClassLoader(LdapTemplateWithClassLoaderWrapper.java:43)  
at com.atlassian.crowd.directory.ldap.LdapTemplateWithClassLoaderWrapper.lookup(LdapTemplateWithClassLoaderWrapper.java:74)  
at com.atlassian.crowd.directory.MicrosoftActiveDirectory.fetchHighestCommittedUSN(MicrosoftActiveDirectory.java:277)  
at com.atlassian.crowd.directory.ldap.cache.UsnChangedCacheRefresher.synchroniseAll(UsnChangedCacheRefresher.java:221)  
at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:621)  
at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:63)  
at com.atlassian.crowd.directory.DbCachingDirectoryPoller.pollChanges(DbCachingDirectoryPoller.java:50)  
at com.atlassian.crowd.manager.directory.monitor.poller.DirectoryPollerJobBean.executeInternal(DirectoryPollerJobBean.java:29)  
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)  
at org.quartz.core.JobRunShell.run(JobRunShell.java:199)  
at com.atlassian.confluence.schedule.quartz.ConfluenceQuartzThreadPool$1.run(ConfluenceQuartzThreadPool.java:20)  
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)  
Caused by: javax.naming.CommunicationException: simple bind failed: dir.slb.com:3269 \[Root exception is 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\]  
at com.sun.jndi.ldap.LdapClient.authenticate(Unknown Source)  
at com.sun.jndi.ldap.LdapCtx.connect(Unknown Source)  
at com.sun.jndi.ldap.LdapCtx.\<init\>(Unknown Source)  
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(Unknown Source)  
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(Unknown Source)  
at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(Unknown Source)  
at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(Unknown Source)  
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)  
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)  
at javax.naming.InitialContext.init(Unknown Source)  
at javax.naming.ldap.InitialLdapContext.\<init\>(Unknown Source)  
at org.springframework.ldap.core.support.LdapContextSource.getDirContextInstance(LdapContextSource.java:43)  
at org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSource.java:254)  
... 19 more  
Caused by: 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**   
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)  
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)  
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)  
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)  
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)  
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)  
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)  
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)  
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)  
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)  
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(Unknown Source)  
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(Unknown Source)  
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)  
at java.io.BufferedOutputStream.flush(Unknown Source)  
at com.sun.jndi.ldap.Connection.writeRequest(Unknown Source)  
at com.sun.jndi.ldap.LdapClient.ldapBind(Unknown Source)  
... 32 more  
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target  
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)  
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)  
at sun.security.validator.Validator.validate(Unknown Source)  
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)  
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)  
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)  
... 44 more  
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target  
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)  
at java.security.cert.CertPathBuilder.build(Unknown Source)  
... 50 more  
2014-01-17 13:00:07,261 INFO \[scheduler_Worker-5\] \[atlassian.crowd.directory.DbCachingRemoteDirectory\] synchroniseCache failed synchronisation complete in \[ 271ms \]  
2014-01-17 13:00:07,279 ERROR \[scheduler_Worker-5\] \[atlassian.crowd.directory.DbCachingDirectoryPoller\] pollChanges Error occurred while refreshing the cache for directory \[ 2785281 \].  
com.atlassian.crowd.exception.OperationFailedException: Error looking up attributes for highestCommittedUSN  
at com.atlassian.crowd.directory.MicrosoftActiveDirectory.fetchHighestCommittedUSN(MicrosoftActiveDirectory.java:293)  
at com.atlassian.crowd.directory.ldap.cache.UsnChangedCacheRefresher.synchroniseAll(UsnChangedCacheRefresher.java:221)  
at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:621)  
at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:63)  
at com.atlassian.crowd.directory.DbCachingDirectoryPoller.pollChanges(DbCachingDirectoryPoller.java:50)  
at com.atlassian.crowd.manager.directory.monitor.poller.DirectoryPollerJobBean.executeInternal(DirectoryPollerJobBean.java:29)  
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)  
at org.quartz.core.JobRunShell.run(JobRunShell.java:199)  
at com.atlassian.confluence.schedule.quartz.ConfluenceQuartzThreadPool$1.run(ConfluenceQuartzThreadPool.java:20)  
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)  
Caused by: org.springframework.ldap.CommunicationException: simple bind failed: dir.slb.com:3269; nested exception is javax.naming.CommunicationException: simple bind failed: dir.slb.com:3269 \[Root exception is 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\]  
at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:98)  
at org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSource.java:266)  
at org.springframework.ldap.core.support.AbstractContextSource.getContext(AbstractContextSource.java:106)  
at org.springframework.ldap.core.support.AbstractContextSource.getReadWriteContext(AbstractContextSource.java:138)  
at org.springframework.ldap.transaction.compensating.manager.TransactionAwareContextSourceProxy.getReadWriteContext(TransactionAwareContextSourceProxy.java:94)  
at org.springframework.ldap.transaction.compensating.manager.TransactionAwareContextSourceProxy.getReadOnlyContext(TransactionAwareContextSourceProxy.java:65)  
at org.springframework.ldap.core.LdapTemplate.executeReadOnly(LdapTemplate.java:792)  
at org.springframework.ldap.core.LdapTemplate.lookup(LdapTemplate.java:834)  
at com.atlassian.crowd.directory.ldap.LdapTemplateWithClassLoaderWrapper$3.call(LdapTemplateWithClassLoaderWrapper.java:77)  
at com.atlassian.crowd.directory.ldap.LdapTemplateWithClassLoaderWrapper.invokeWithContextClassLoader(LdapTemplateWithClassLoaderWrapper.java:43)  
at com.atlassian.crowd.directory.ldap.LdapTemplateWithClassLoaderWrapper.lookup(LdapTemplateWithClassLoaderWrapper.java:74)  
at com.atlassian.crowd.directory.MicrosoftActiveDirectory.fetchHighestCommittedUSN(MicrosoftActiveDirectory.java:277)  
... 9 more  
Caused by: javax.naming.CommunicationException: simple bind failed: dir.slb.com:3269 \[Root exception is 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\]  
at com.sun.jndi.ldap.LdapClient.authenticate(Unknown Source)  
at com.sun.jndi.ldap.LdapCtx.connect(Unknown Source)  
at com.sun.jndi.ldap.LdapCtx.\<init\>(Unknown Source)  
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(Unknown Source)  
at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(Unknown Source)  
at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(Unknown Source)  
at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(Unknown Source)  
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)  
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)  
at javax.naming.InitialContext.init(Unknown Source)  
at javax.naming.ldap.InitialLdapContext.\<init\>(Unknown Source)  
at org.springframework.ldap.core.support.LdapContextSource.getDirContextInstance(LdapContextSource.java:43)  
at org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSource.java:254)  
... 19 more  
Caused by: 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  
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)  
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)  
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)  
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)  
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)  
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)  
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)  
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)  
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)  
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)  
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(Unknown Source)  
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(Unknown Source)  
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)  
at java.io.BufferedOutputStream.flush(Unknown Source)  
at com.sun.jndi.ldap.Connection.writeRequest(Unknown Source)  
at com.sun.jndi.ldap.LdapClient.ldapBind(Unknown Source)  
... 32 more  
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target  
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)  
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)  
at sun.security.validator.Validator.validate(Unknown Source)  
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)  
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)  
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)  
... 44 more  
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target  
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)  
at java.security.cert.CertPathBuilder.build(Unknown Source)  
... 50 more


Answers:
author: Nic Brough -Adaptavist-
body: This line tells you exactly what is wrong:

\> sun.security.provider.certpath.SunCertPathBuilderException: **unable to find valid certification path to requested target**

You have not given the JVM the right certificates. There's a whole mess of SSL certificate stuff you could get bogged down in here, but the usual cause of this error is that you've either

* Not got certificates at all
* Given the wrong settings to read and use the certificates you've got
* Are using a certificate that has not been authorised by the server you're trying to reach
* You're using a self-signed cert that has not been correctly signed or is missing the certificate authority


Tags: confluence-administration