¿Cómo puedo configurar Jenkins CI para usar https en Windows?
Recientemente hemos configurado un servidor Jenkins CI en Windows. Ahora, para usar la autenticación de Active Directory, me gustaría requerir https (SSL/TLS) para el acceso. Dada esta configuración, ¿cuál es la forma recomendada de hacer esto?
2 answers
Vaya a su %JENKINS_HOME% y modifique el jenkins.XML. Donde vea --httpPort=8080
cámbielo a --httpPort=-1 --httpsPort=8080
puede hacer los puertos lo que quiera, por supuesto, pero en mi prueba (hace un tiempo, puede haber cambiado) si no mantiene --httpPort=<something>
entonces Jenkins siempre usará 8080. Así que si simplemente cambias --httpPort=8080
a --httpsPort=8080
, el puerto 8080 seguirá usando http.
También, si desea utilizar su propio certificado, hay algunas instrucciones en la parte inferior de este pagina.
Http://wiki.jenkins-ci.org/display/JENKINS/Starting+y + Accediendo + Jenkins
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-04 19:42:00
Ejecutar:
keytool -genkey -keyalg RSA -keystore Jenkins.jks -alias [Name of website] -keysize 2048
Responda las preguntas recordando que First and last name
es la URL del sitio web y debe ser en minúsculas. Ejemplo:
build.jenkins-ci.org
State or province
no se puede abreviar.
Ejecutar:
keytool -certreq -Keystore jenkins.jks -alias [Name of website] -file jenkins.csr -keysize 2048
Envíe Jenkins.csr
a su proveedor de certificados y solicite un certificado PKCS#7 que tenga una extensión .p7b
y comience con:
-----BEGIN PKCS #7 SIGNED DATA-----
Nota: Los certificados de prueba normalmente no están disponibles en formato .p7b
, pero es posible que pueda combinar los archivos .cer
utilizando esta herramienta que informó de éxito, pero no funcionó para mí. (https://www.sslshopper.com/ssl-converter.html)
Ejecutar:
keytool -import -trustcacerts -file jenkins.p7b -keystore jenkins.jks -alias [Name of website]
Cambia el nodo arguments
en Jenkins.xml a la siguiente 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>
Solución de problemas:
- Si Jenkins no comienza lea las últimas líneas de
Jenkins.err.log
. - Si Jenkins no se inició debido a un problema con
Jenkins.xml
, reemplace los caracteres–
(guion raro de Windows) con un-
(guion ASCII) real. - Si Jenkins comienza pero el cert todavía se lee como malo, asegúrese de que el
[Name of website]
es la URL real sin elhttps:
ejemplo:https://build.jenkins-ci.org
seríabuild.jenkins-ci.org
. - Si ese no es el problema, inspeccione el archivo
.jks
usandoKeyStore Explorer
. La "Jerarquía de certificados" debe mostrar que cada cert está anidado en otro; esto es para ilustrar la cadena cert. Si muestra los certificados uno al lado del otro, entonces no es correcto. - Si no se inicia en un puerto específico, por ejemplo, 443, verifique que IIS u otra aplicación no esté utilizando actualmente el portuario.
- Si puede ver el sitio en el PC en el que está alojado, pero no en otro PC, verifique que no esté siendo bloqueado por un firewall.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-06 22:16:42