wake-up-neo.net

HTTPS in Jenkins aktivieren?

Ich habe ein privates Netzwerk mit einer lokalen IP ... Ich möchte HTTPS für meinen Jenkins-Server aktivieren, der statische IP-Adresse W.X.Y.Z: 8080 ist.

Jenkins version 2.9
Java version "1.7.0_111"
OpenJDK Runtime Environment (IcedTea 2.6.7) (7u111-2.6.7-0ubuntu0.14.04.3)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)

Ich habe versucht, in/etc/defaults/jenkins die folgenden Argumente zu konfigurieren

HTTP_PORT=-1
JENKINS_ARGS="--webroot=/var/cache/$NAME/war -DsessionTimeout=1 --httpPort=$HTTP_PORT  --httpsPort=8081"

Ich bekomme aber folgende Fehler. Bitte helfen

Running from: /usr/share/jenkins/jenkins.war
webroot: $user.home/.jenkins
Oct 19, 2016 2:18:48 PM org.Eclipse.jetty.util.log.JavaUtilLog info
INFO: Logging initialized @811ms
Oct 19, 2016 2:18:48 PM winstone.Logger logInternal
INFO: Beginning extraction from war file
Oct 19, 2016 2:18:48 PM org.Eclipse.jetty.util.log.JavaUtilLog warn
WARNING: Empty contextPath
Using one-time self-signed certificate
Oct 19, 2016 2:18:48 PM winstone.Logger logInternal
INFO: Winstone shutdown successfully
Oct 19, 2016 2:18:48 PM winstone.Logger logInternal
SEVERE: Container startup failed
Java.io.IOException: Failed to start a listener
winstone.HttpsConnectorFactory
at winstone.Launcher.spawnListener(Launcher.Java:207)
at winstone.Launcher.<init>(Launcher.Java:149)
at winstone.Launcher.main(Launcher.Java:352)`enter code here`
at Sun.reflect.NativeMethodAccessorImpl.invoke0        

Ich habe ähnliche Probleme hier gelöst, aber es hat nicht funktioniert 

EDIT1: Die folgenden Änderungen wurden in der Datei/etc/defaults/jenkins ausprobiert und jenkins neu gestartet, aber es funktionierte nicht für mich.

HTTP_PORT=-1
JENKINS_ARGS="--webroot=/var/cache/$NAME/war -DsessionTimeout=1 --httpPort=$HTTP_PORT   --httpsPort=8443 --httpsCertificate=cert.pem --httpsPrivateKey=key.pem

https://issues.jenkins-ci.org/browse/JENKINS-34463

https://issues.jenkins-ci.org/browse/JENKINS-25333

4
Triangle

Sie können Jenkin über HTTPS wie folgt aktivieren:

Schritt 1: Zertifikat mit Java erstellen

keytool -genkey -keyalg RSA -alias "localhost" -keystore "C:\Benutzer\Benutzername\Desktop\Neuer Ordner\localhost.jks" -gültigkeit 365 -keysize 2048 -dname "CN = localhost, OU = OU_name, O = OU_name , L = Stadt, ST = Landesname, C = Zwei_Letters_Ländercode "-ext SAN = DNS: LokalerHost, IP: IP-Adresse

Schritt 2: Exportieren des öffentlichen p12-Zertifikats aus der Schlüsselspeicherdatei

keytool -importkeystore -srckeystore "C:\Benutzer\Benutzername\Desktop\Neuer Ordner\localhost.jks" -Storepass changeit -destkeystore "C:\Benutzer\Benutzername\Desktop\Neuer Ordner\localhost.p12" -srcstoretype JKS -deststoretype PKCS12 -deststorepass changeit

Schritt 3: Hosten Sie Jenkins mithilfe der JKS-Datei (Key-Store)

Java -jar jenkins.war --httpsPort = 8082 --httpPort = -1 --httpsKeyStore = "C:\Benutzer\Benutzername\Desktop\Neuer Ordner\localhost.jks" --httpsKeyStorePassword = changeit

Schritt 4: Importieren Sie das Zertifikat in den Browser

Vielleicht haben Sie Fragen, warum wir das p12-Zertifikat exportiert haben. Nun, dieses Zertifikat werden wir in unseren Browser importieren, wo wir auf Jenkins zugreifen. Das gleiche p12-Zertifikat kann von mehreren Benutzern gemeinsam genutzt werden. Zum Beispiel in Chrome gehen Sie zu Einstellung> Suche - "Zertifikat verwalten" und klicken Sie auf "Zertifikat verwalten" Sie erhalten ein "Zertifikat" Fenster. Importieren Sie das Zertifikat in jede Registerkarte (Personal, Andere Personen, Zwischenzertifizierungsstellen, Vertrauenswürdige Stammzertifizierungsstellen, Vertrauenswürdige Herausgeber und Nicht vertrauenswürdige Herausgeber).

5
ravi creed

Sie müssen einen Parameter für den Keystore oder die PEM-Datei des privaten Schlüssels übergeben

https://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins

3
Daniel Scott

Das ist sehr interessant. Wenn Sie Ihre neue Instanz von Jenkins haben, ist dies eine Kopie Ihrer alten Jenkins-Instanz. Kopieren Sie die Zertifikate, die sich unter D:\Jenkins\jre\lib\security (Beispielverzeichnisstruktur) befinden, in den Ordner jre/secrets Ihrer vorhandenen neuen Jenkins-Instanz. In jenkins.xml ändern Sie die Argumente entsprechend ..__ Hier ist das Beispiel - Xrs -Xmx256m -Dhudson.lifecycle = hudson.lifecycle.WindowsServiceLifecycle -jar "% BASE%\jenkins.war" --httpPort = -1 --httpsPort = 8443 --httpsKeyStore = "% BASE%\secrets\keystore" --httpsKeyStorePassword = Ihr.Passwort.hier

0
MS_22