Nous avons récemment mis en place un serveur Jenkins CI sous Windows. Maintenant, pour pouvoir utiliser l'authentification Active Directory, j'aimerais pouvoir utiliser l'accès https (SSL / TLS). Compte tenu de cette configuration, quelle est la manière recommandée de procéder?
Réponses
Trop de publicités?Accédez à votre %jenkins_home comme pointant% et de modifier la jenkins.xml. Où vous voyez --httpPort=8080
changer en --httpPort=-1 --httpsPort=8080
vous pouvez faire les ports tout ce que vous voulez, bien sûr, mais dans mes tests (il y a un moment, elle peut avoir changé) si vous ne gardez pas d' --httpPort=<something>
alors Jenkins utilise toujours 8080. Donc, si vous changez simplement de --httpPort=8080
de --httpsPort=8080
, le port 8080 continuent d'utiliser le protocole http.
Aussi, si vous souhaitez utiliser votre propre certificat, il y a des instructions au bas de cette page.
http://wiki.jenkins-ci.org/display/JENKINS/Starting+et+Accès+Jenkins
Exécuter:
keytool -genkey -keyalg RSA -keystore Jenkins.jks -alias [Name of website] -keysize 2048
Répondre aux questions en se souvenant que, First and last name
est l'URL du site et doivent être en minuscules. Exemple:
build.jenkins-ci.org
State or province
ne peut être abrégé.
Exécuter:
keytool -certreq -Keystore jenkins.jks -alias [Name of website] -file jenkins.csr -keysize 2048
Envoyez Jenkins.csr
de votre cert fournisseur et demande un fichier PKCS#7 cert qui a un .p7b
extension et commence avec:
-----BEGIN PKCS #7 SIGNED DATA-----
Remarque: le Procès de certificats ne sont pas normalement disponibles en .p7b
format, mais vous pouvez être en mesure de combiner l' .cer
fichiers à l'aide de cet outil, qui ont rapporté le succès, mais n'a pas fonctionné pour moi. (https://www.sslshopper.com/ssl-converter.html)
Exécuter:
keytool -import -trustcacerts -file jenkins.p7b -keystore jenkins.jks -alias [Name of website]
Modifier l' arguments
noeud Jenkins.xml à la suite de prespectivly.
<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>
Dépannage:
- Si Jenkins n'est pas commencer à lire les dernières lignes de
Jenkins.err.log
. - Si Jenkins n'a pas pu démarrer en raison d'un problème avec
Jenkins.xml
, remplacer l'–
(bizarre Windows trait d'union) caractères avec un effectif-
(ASCII trait d'union). - Si Jenkins démarre mais le cert indique toujours aussi mauvais, assurez-vous que l'
[Name of website]
est l'URL sans lehttps:
exemple:https://build.jenkins-ci.org
seraitbuild.jenkins-ci.org
. - Si ce n'est pas la question inspecter l'
.jks
le fichier à l'aide deKeyStore Explorer
. Le Certificat "Hiérarchie" doivent montrer que chaque cert est imbriqué dans un autre; C'est pour illustrer le cert de la chaîne. Si elle montre l'certs uns à côté des autres, alors il n'est pas correct. - Si il ne démarre pas sur un port spécifique, 443 par exemple, puis vérifier qu'IIS ou d'une autre application n'est pas en train d'utiliser le port.
- Si vous pouvez voir le site sur le PC, il est hébergé sur, mais pas sur un autre PC, puis de vérifier que vous n'obtenez pas bloqué par un pare-feu.