Ein Hinweis, was zu tun ist, wenn in Java ein nicht vertrauenswürdiger SSL-Zertifikatfehler (javax.net.ssl.SSLHandshakeException) auftritt, wenn Sie versuchen, Jenkins mit Homebrew unter MacOSX zu installieren
Nachdem die Installation abgeschlossen war, als ich sie startete und versuchte, die anfänglichen Einstellungen vorzunehmen, war ich offline und konnte das Plug-In überhaupt nicht installieren. Als ich mir das Protokoll ansah, bekam ich einen Fehler wie diesen.
Apr 28, 2018 12:40:10 AM hudson.model.UpdateCenter updateDefaultSite
Warnung: Upgrading Jenkins. Failed to update the default Update Site 'default'. Plugin upgrades may fail.
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 sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:914)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1513)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at hudson.model.DownloadService.loadJSON(DownloadService.java:167)
at hudson.model.UpdateSite.updateDirectlyNow(UpdateSite.java:190)
at hudson.model.UpdateCenter.updateDefaultSite(UpdateCenter.java:2194)
at jenkins.install.SetupWizard.init(SetupWizard.java:174)
at jenkins.install.InstallState$InitialSecuritySetup.initializeState(InstallState.java:142)
at jenkins.model.Jenkins.setInstallState(Jenkins.java:1033)
at jenkins.install.InstallUtil.proceedToNextStateFrom(InstallUtil.java:97)
at jenkins.install.InstallState$Unknown.initializeState(InstallState.java:75)
at jenkins.model.Jenkins$17.run(Jenkins.java:3149)
at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296)
at jenkins.model.Jenkins$5.runTask(Jenkins.java:1062)
at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214)
at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
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(PKIXValidator.java:387)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
at sun.security.validator.Validator.validate(Validator.java:260)
at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491)
... 29 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)
... 35 more
Die Ursache ist, dass das Zertifikat bei der Überprüfung mit Java nicht vertrauenswürdig ist. Daher wird gesagt, dass das Zertifikat direkt zu den vertrauenswürdigen Zertifikatinformationen von Java hinzugefügt werden sollte. Fügen Sie es daher gemäß dem folgenden Ablauf hinzu.
Stand: 28. April 2018: https://updates.jenkins.io/update-center.json
Es war in Ordnung, wenn ich das Zertifikat von einfügte, also mit Chrom usw. auf die Site zugreifen, das Zertifikat und DL anzeigen.
(Zeigen Sie für den DL des Zertifikats die Site mit Chrom an, drücken Sie "Geschützte Kommunikation" im URL-Feld und wählen Sie "Zertifikat" und dann "Bildteil" des angezeigten Zertifikats Wenn Sie per Drag & Drop in einen geeigneten Ordner ziehen, sollten Sie "updates.jenkins.io.cer" usw. erhalten.)
cd `/usr/libexec/java_home`/jre/lib/security
sudo keytool -importcert -file [Pfad zum DL-Zertifikat]/updates.jenkins.io.cer -keystore cacerts
Zu diesem Zeitpunkt werden Sie nach dem Keystore-Passwort gefragt. Geben Sie also "change it" ein. (Da dies die Standardeinstellung ist, ist es besser, nach "Java Standard Keystore Password" zu suchen.)
Sie sollten wahrscheinlich jetzt darauf zugreifen können.
Recommended Posts