# SSL haut nicht hin



## Joob (25. Jun 2020)

Ich hoffe ich bin hier nicht ganz falsch.

Ich schreib mal:
bisher hatte ich eine Hosting Vertrag bei IONOS
nun habe ich mir einen Server angeschafft.

Nachdem ich SSL dort am Start habe, versuche ich auf meine Datenbanken zuzugreifen und bekomme dann aber die Exception:
das kann ich aber nicht wirklich zuordnen.
Kann mir jemand helfen wie ich das lösen kann ?
Ich habe auch schon google aber das war für mich nicht schlüssig, da ich mit den Certifikaten im Hostingvertrag keine Probleme hatte.
Vielleicht kann mir jemand sagen wo ich das Problem suchen muss.


```
Exception in thread "main" javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:324)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:267)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:262)
    at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1331)
    at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.onConsumeCertificate(CertificateMessage.java:1206)
    at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.consume(CertificateMessage.java:1153)
    at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)
    at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444)
    at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422)
    at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:181)
    at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164)
    at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1460)
    at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1368)
    at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:437)
    at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567)
    at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:171)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1362)
    at java.base/sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1337)
    at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:220)
    at org.joobsoft.vtadm.SYS.vtadminDataAccessClass.setDataHttps(vtadminDataAccessClass.java:523)
    at org.joobsoft.vtadm.SYS.vtadminDataAccessClass.setData(vtadminDataAccessClass.java:96)
    at dataaccessdef.Qcla_VTDESKADMIN.set_crypstring(Qcla_VTDESKADMIN.java:55)
    at org.joobsoft.vtadm.vtmakeaccessstring.SafeAccDataInDB.safeCrypString(SafeAccDataInDB.java:313)
    at org.joobsoft.vtadm.vtmakeaccessstring.SafeAccDataInDB.safeAccessDataInDB(SafeAccDataInDB.java:179)
    at org.joobsoft.vtadm.vtmakeaccessstring.MAIN_VTADM.main(MAIN_VTADM.java:34)
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 java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:384)
    at java.base/sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:289)
    at java.base/sun.security.validator.Validator.validate(Validator.java:264)
    at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
    at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)
    at java.base/sun.security.ssl.CertificateMessage$T13CertificateConsumer.checkServerCerts(CertificateMessage.java:1315)
    ... 21 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
    at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
    at java.base/java.security.cert.CertPathBuilder.build(CertPathBuilder.java:297)
    at java.base/sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:379)
    ... 26 more
```


----------



## mihe7 (26. Jun 2020)

a) zum Verbindungsaufbau muss natürlich der Domainname verwendet werden,
b) der Server muss sämtliche Zertifikate außer dem Wurzelzertfikat an den Client schicken
c) das Wurzelzertifikat muss Java bekannt sein

Wenn die Zertifikatskette dann noch korrekt ist und keine absonderlichen Einstellungen auf dem Server verwendet wurden, dann sollte das funktionieren. Kannst Du mal unter https://www.ssllabs.com/ssltest/ testen. Im Bericht unten findest Du eine Aufstellung, mit welchen Clients die Einstellungen funktionieren.


----------



## Joob (26. Jun 2020)

Danke für die Hilfe.

Ich brauch ein bisschen bis ich alles verstanden habe
und melde mich dann zurück.


----------



## Joob (27. Jun 2020)

Ich habe es hinbekommen. Zertifikat musste Java hinzugefügt werden nachdem ich vom Hosting auf einen eigenen Server umziehe.
Komisch eigentlich denn ich verwende das gleiche Zertifikat.


*Total hilfreich war dieser Link:*





						PKIX path building failed: SunCertPathBuilderException: unable to find valid certification path to requested target
					

PKIX path building failed: SunCertPathBuilderException: unable to find valid certification path to requested target.




					magicmonster.com


----------

