Wie kann ich Jenkins CI einrichten, um HTTPS unter Windows zu verwenden?
-
24-10-2019 - |
Frage
Wir haben kürzlich einen Jenkins CI -Server unter Windows eingerichtet. Um jetzt die Active Directory -Authentifizierung zu verwenden, möchte ich HTTPS (SSL/TLS) für den Zugriff benötigen. Wie können Sie angesichts dieses Setups dies empfohlen, um dies zu tun?
Lösung
Gehen Sie zu Ihrem % jenkins_home % und ändern Sie die jenkins.xml. Wo siehst du --httpPort=8080
Ändern Sie es in --httpPort=-1 --httpsPort=8080
Sie können die Ports natürlich alles machen, was Sie wollen, aber bei meinen Tests (vor einiger Zeit hat es sich möglicherweise geändert), wenn Sie nicht behalten --httpPort=<something>
Dann wird Jenkins immer 8080 verwenden. Wenn Sie sich also einfach ändern --httpPort=8080
zu --httpsPort=8080
, Port 8080 wird weiterhin HTTP verwenden.
Wenn Sie Ihr eigenes Zertifikat verwenden möchten, befinden sich am Ende dieser Seite einige Anweisungen.
http://wiki.jenkins-ci.org/display/jenkins/starting+ und Accesssing++jenkins
Andere Tipps
Laufen:
keytool -genkey -keyalg RSA -keystore Jenkins.jks -alias [Name of website] -keysize 2048
Beantworten Sie die Fragen, die sich daran erinnern First and last name
ist die Website -URL und sollte Kleinbuchstaben sein. Beispiel:
build.jenkins-ci.org
State or province
kann nicht abgekürzt werden.
Laufen:
keytool -certreq -Keystore jenkins.jks -alias [Name of website] -file jenkins.csr -keysize 2048
Senden Jenkins.csr
an Ihren Zertifikatanbieter und fordern Sie ein PKCS#7 -Zertifikat an, das ein hat .p7b
Erweiterung und beginnt mit:
-----BEGIN PKCS #7 SIGNED DATA-----
HINWEIS: Probe Zertifikate sind normalerweise nicht verfügbar in .p7b
Format, aber Sie können das möglicherweise kombinieren .cer
Dateien, die dieses Tool verwenden, das Erfolg berichtete, aber bei mir nicht funktioniert hat. (https://www.sslshopper.com/ssl-converter.html)
Laufen:
keytool -import -trustcacerts -file jenkins.p7b -keystore jenkins.jks -alias [Name of website]
Ändere das arguments
Knoten in jenkins.xml nach folgendem.
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "%BASE%\jenkins.war" --httpPort=-1 --httpsPort=443 --httpsKeyStore="%BASE%\Cert\Jenkins.jks" --httpsKeyStorePassword=[Cert password from step 1]</arguments>
Fehlerbehebung:
- Wenn Jenkins nicht beginnt, die letzten Zeilen von zu lesen
Jenkins.err.log
. - Wenn Jenkins wegen eines Problems mit nicht angefangen hat
Jenkins.xml
, ersetze das–
(seltsame Windows -Hyphen) Zeichen mit einem tatsächlichen-
(ASCII -Bindestrich). - Wenn Jenkins beginnt, aber das Zertifikat immer noch als schlecht liest, stellen Sie sicher, dass das
[Name of website]
ist die tatsächliche URL ohne diehttps:
Beispiel:https://build.jenkins-ci.org
wärebuild.jenkins-ci.org
. - Wenn dies nicht das Problem ist, inspizieren Sie die
.jks
Datei mitKeyStore Explorer
. Die "Zertifikathierarchie" sollte zeigen, dass jedes Zertifikat in einem anderen verschachtelt ist. Dies soll die Zertifizierungskette veranschaulichen. Wenn es die Zertifikate nebeneinander anzeigt, ist es nicht korrekt. - Wenn es beispielsweise bei einem bestimmten Port nicht beginnt, verifizieren Sie den IIS oder eine andere App derzeit nicht den Port.
- Wenn Sie die Website auf dem PC sehen können, auf dem sie gehostet wird, aber nicht auf einem anderen PC, werden Sie sicherstellen, dass Sie nicht von einer Firewall blockiert werden.
SCHRITT1: Erstellen Sie sowohl öffentliches als auch privates Zertifikat in Ihrem Jenkin -Namen (konvertieren Sie sie in Keysore -Datei, wenn dies nicht der Fall ist) Schritt 2: Importieren Sie das öffentliche Zertifikat in Ihr Browser -Zertifikat Mananger (in alle Registerkarten importieren) Schritt 3: Hostieren Sie Ihre Jenkin mit JKS -Datei, die beide enthalten öffentlicher und privater Schlüssel.
Für Schritte beziehen sich "HTTPS in Jenkins aktivieren?"