Nous avons récemment configuré un serveur Jenkins CI sous Windows. Maintenant, afin d'utiliser l'authentification Active Directory, je voudrais exiger https (SSL/TLS) pour l'accès. Compte tenu de cette configuration, quelle est la méthode recommandée pour ce faire?
Accédez à votre% JENKINS_HOME% et modifiez le jenkins.xml. Où tu vois --httpPort=8080
changez-le en --httpPort=-1 --httpsPort=8080
vous pouvez faire des ports tout ce que vous voulez bien sûr, mais dans mes tests (il y a quelque temps, cela a peut-être changé) si vous ne gardez pas --httpPort=<something>
alors Jenkins utilisera toujours 8080. Donc, si vous changez simplement --httpPort=8080
à --httpsPort=8080
, le port 8080 utilisera toujours http.
De plus, si vous souhaitez utiliser votre propre certificat, il y a quelques instructions au bas de cette page.
http://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins
Courir:
keytool -genkey -keyalg RSA -keystore Jenkins.jks -alias [Name of website] -keysize 2048
Répondez aux questions en vous rappelant que First and last name
est l'URL du site Web et doit être en minuscules. Exemple:
build.jenkins-ci.org
State or province
ne peut pas être abrégé.
Courir:
keytool -certreq -Keystore jenkins.jks -alias [Name of website] -file jenkins.csr -keysize 2048
Envoyer Jenkins.csr
à votre fournisseur de certificats et demandez un certificat PKCS # 7 doté d'un .p7b
extension et commence par:
-----BEGIN PKCS #7 SIGNED DATA-----
Remarque: les certificats d'essai ne sont normalement pas disponibles dans .p7b
mais vous pourrez peut-être combiner le .cer
fichiers utilisant cet outil qui ont rapporté un succès mais ne fonctionnaient pas pour moi. (https://www.sslshopper.com/ssl-converter.html)
Courir:
keytool -import -trustcacerts -file jenkins.p7b -keystore jenkins.jks -alias [Name of website]
Remplacez le noeud arguments
dans Jenkins.xml par le code suivant, de la manière suivante.
<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:
Jenkins.err.log
.Jenkins.xml
, remplace le –
(trait d'union Windows étrange) avec un -
(Trait d'union ASCII).[Name of website]
est l'URL réelle sans le https:
exemple: https://build.jenkins-ci.org
serait build.jenkins-ci.org
..jks
fichier utilisant KeyStore Explorer
. La "hiérarchie des certificats" doit montrer que chaque certificat est imbriqué dans un autre; Ceci est pour illustrer la chaîne cert. S'il montre les certificats côte à côte, ce n'est pas correct.Étape 1: créez un certificat public et privé sur votre nom jenkin (convertissez-les en fichier de clés si ce n'est pas le cas) Étape 2: importez le certificat public dans votre gestionnaire de certificats de navigateur (importez dans tous les onglets) clé publique et privée.
Pour les étapes, reportez-vous à " Activer HTTPS dans jenkins? "