web-dev-qa-db-de.com

Jenkins "Fehler beim Importieren des Git-Repositorys", um gültigen Zertifizierungspfad zum angeforderten Ziel nicht zu finden

Ich versuche ein Git Repo von Jenkins mit dem Jenkins Git Plugin auf meinem Laptop zu bauen. Das Git-Repo befindet sich auf einem vertrauenswürdigen Firmenserver, der über selbstsignierte Zertifikate verfügt. Bei der Angabe der URL bekomme ich immer einen Fehler: 

Failed to connect to repository : Sun.security.validator.ValidatorException:
PKIX path building failed: Sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target

Ich verstehe diesen Fehler aufgrund selbstsignierter Zertifikate, aber der Server gehört zu meiner Firma und ist von einer Behörde signiert.

Ich habe auch versucht, das selbe Repo von einem anderen Laptop mit selbstsignierten zu importieren und den gleichen Fehler zu erhalten.

Jede Hilfe wird geschätzt

13
user2118245

Gehen Sie zu -> Jenkins verwalten -> Globale Sicherheit konfigurieren -> Plugin-Manager Und aktivieren Sie das Kontrollkästchen Browser für Metadaten herunterladen.

Es wird das Problem lösen.

20
Anshul Gupta

Dieser Fehler ist eine häufige Fehlermeldung, die von der Java Virtual Machine gemeldet wird. Dies wird verursacht, wenn die Java-Umgebung keine Informationen zum HTTPS-Server hat, um zu überprüfen, ob es sich um eine gültige Website handelt. In manchen Fällen wird das Zertifikat von einer internen Stammzertifizierungsstelle bereitgestellt oder ist ein selbst signiertes Zertifikat. Dies kann die JVM manchmal verwirren, da diese nicht von der Java-Liste der vertrauenswürdigen Java-Server bereitgestellt werden können.

Da wir wissen, dass das Zertifikat „gültig“ ist, können wir dieses Zertifikat direkt in die JVM importieren. Dabei teilen wir der JVM mit, dass es sich um ein "vertrauenswürdiges" Zertifikat handelt, und alle damit verbundenen Probleme "ignorieren".

Sie müssen das Zertifikat Ihrer Java Certificate Authority-Datei hinzufügen. Bei einem Debian/Ubuntu-Linux-Computer befindet sich dieser normalerweise hier:

$Java_HOME/jre/lib/security/cacerts

Sie möchten es jedoch nicht zum Keystore des JRE-Cacert hinzufügen, da es von der JRE überschrieben/überschrieben wird. Es empfiehlt sich daher, diese Datei für Jenkins zu duplizieren.

  • $Java_HOME - Dies sollte der Ort sein, an dem sich Ihr aktuelles Java-Home befindet. Wenn Sie nur Java Runtime Environment (JRE) installiert haben, können Sie $Java_HOME/jre durch den $JRE_HOME ersetzen.

  • $ALIAS - Dies kann ein beliebiger Wert sein. Es ist ein Wert, um dieses Zertifikat von anderen zu unterscheiden. Ein Beispiel wäre "git-repo" oder "Artefakt-Server".

  • $JENKINS_HOME - Dies ist der Pfad zu Ihrem Jenkins-Zuhause. Oft /var/lib/jenkins.

Sie können das Zertifikat mit den folgenden Befehlen in Ihre JVM-Cacerts-Datei importieren. - In Ihrem Jenkins-Meister. Fordern Sie das Zertifikat an, kopieren Sie den JVM-Keystore für Jenkins, importieren Sie das Zertifikat in den Keystore, fügen Sie den Jenkins-Startparameter den vertrauenswürdigen Keystore hinzu und starten Sie Jenkins erneut.

# Import certificate
openssl s_client -showcerts -connect https://your-target-server\
< /dev/null 2> /dev/null | openssl x509 -outform PEM > ~/root_ca.pem

# Duplicate Java Keystore file and move into Jenkins...
mkdir $JENKINS_HOME/keystore/
cp $Java_HOME/jre/lib/security/cacerts $JENKINS_HOME/keystore/

# Add Certificate to Keystore
keytool -import -alias $ALIAS -keystore $JENKINS_HOME/keystore/cacerts -file ~/root_ca.pem

# Add -Djavax.net.ssl.trustStore=$JENKINS_HOME/keystore/cacerts to the
# Jenkins startup parameters. For Debian/Ubuntu, this is /etc/default/jenkins
echo 'Java_ARGS="$Java_ARGS -Djavax.net.ssl.trustStore=$JENKINS_HOME/keystore/cacerts"'\
>> /etc/default/jenkins

Sudo service jenkins restart

Referenzhilfe:

15
Highway of Life

Aus der Frage gehe ich davon aus, dass dieser Jenkins auf einer Entwicklerbox installiert ist. 

Wenn Sicherheit in diesem Feld kein Hauptanliegen ist, können Sie in der Jenkins-Webbenutzeroberfläche unter Jenkins verwalten> Plugins verwalten> Tab Verfügbar die Option "Skip-Certificate-Check suchen " plugin. 

Bei der Installation sollte das Problem behoben sein. Verwenden Sie dieses Plugin mit Vorsicht, da aus Sicherheitsgründen nicht empfohlen wird.

7
Sairam Krish

Java wird mit einer Standardliste vertrauenswürdiger Stammzertifizierungsstellen ausgeliefert. Wenn es keinen Pfad zu einer dieser vertrauenswürdigen Zertifizierungsstellen findet, vertraut es dem Zertifikat nicht.

Es klingt, als würde der Server, zu dem Sie eine Verbindung herstellen möchten, ein von einer internen Zertifizierungsstelle signiertes Zertifikat verwenden. Das ist typisch für interne Server. Sie möchten nicht für ein Zertifikat bezahlen, wenn es nicht nach außen gerichtet ist.

Sie können die Stammzertifizierungsstelle Ihres Unternehmens Java mit dem Befehl keytool hinzufügen. Dann können Sie SSL-Verbindungen zu jedem von diesem Stammzertifikat signierten Zertifikat herstellen.

3
Matt Jennings

Jenkins verwalten -> Plugins verwalten -> Plugin-Manager -> Erweitert

Ändern Sie "Update Site", um http und nicht https zu verwenden. das löst mein problem.  enter image description here

2
Rafael Zhou

Dies ist eine Java Version - Jenkins-Zertifizierungsproblem zwischen Ihren Systemversionen Java und Jenkins Java.

Ändern Sie den Java -Pfad, auf den sich die Jenkins beziehen.

  1. Gehen Sie in Ihren Jenkins-Home-Ordner und öffnen Sie die Datei jenkins.xml: %Jenkins_Home%/jenkins.xml

  2. Sie finden das Tag %BASE%\jre\bin\Java. Ersetzen Sie das Tag durch das auf dem System installierte Java -Pfad, zum Beispiel C:\Program Files (x86)\Java\jre1.8.0_144\bin\Java

Jetzt solltest du das Problem nicht haben.

Beispiel

obgleich die obige Antwort im Allgemeinen richtig ist, kann sie auch auf ein abgelaufenes Zertifikat in der Kette (Serverzertifikat, Zwischenprodukt, Root) zurückzuführen sein. Ich habe gerade den gleichen Fehler erhalten und mein Serverzertifikat ist abgelaufen.

0
Markus

Fügen Sie die von Ihrem Browser heruntergeladene Stamm-CA (GlobalSign.cer) zu Java_HOME/jre/lib/security/cacerts hinzu.

Sie können das Tool "Keystore Explorer" verwenden, um Root-CA zu Java-Zertifikaten hinzuzufügen. Aktivieren Sie dieses link für die Reihenfolge der Schritte, um Root-CA zu Java-Zertifikaten hinzuzufügen: 

Starten Sie Jenkins neu, nachdem Sie die Root-CA erfolgreich zu Java cert hinzugefügt haben.

0
Vinay Yella

Ich habe gerade jenkins.war mit jdk cacerts als Workaround gestartet. Krieg &

0
Stella

Für Jeinkins unter Windows

Nach der Installation einer eigenständigen Java-Version auf meinem PC ist der genannte Fehler verschwunden.

Um genau zu sein, habe ich JDK 8u162 (Java SE Development Kit 8u162) von Java SE Development Kit 8 Downloads installiert.

0
it3xl

Für eine neuere Version von Jenkins gehen Sie zu Jenkins -> Jenkins verwalten -> Globale Sicherheit konfigurieren. Aktivieren Sie die Option Browser für Metadatendownload verwenden [standardmäßig deaktiviert] und starten Sie Jenkins neu

0
MD5

wechseln Sie zu C:\Programme\Java\jdk1.8.0_45\jre\lib\security

cmd C:\Programme\Java\jdk1.8.0_45\jre\lib\security

danach geben Sie Java -jar jenkins.war, um das Problem mit dem Zertifikat zu lösen

0
user11479717