¿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?

Author: Ripon Al Wasim, 2011-03-15

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

 32
Author: aflat,
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 el https: ejemplo: https://build.jenkins-ci.org sería build.jenkins-ci.org.
  • Si ese no es el problema, inspeccione el archivo .jks usando KeyStore 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.
 16
Author: Gabe,
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