Jenkins, Subversion i els certificats SSL

X

Privadesa i galetes

Aquest lloc utilitza galetes. A l’continuar, acceptes el seu ús. Aconsegueix més informació; per exemple, sobre com controlar les galetes.

Entès

Anuncis

trant d’automatitzar la release d’un projecte Maven, ens hem trobat amb un problema amb els certificats i Subversion. El problema és que Subversion no accepta el certificat de SidelabCode. Concretament l’error és el següent:

Error validating server certificate for 'https://code.sidelab.es:443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: code.sidelab.es
- Valid: from Fri, 09 Sep 2011 13:42:29 GMT until Mon, 06 Sep 2021 13:42:29 GMT
- Issuer: Web, Sidelab, ES, Madrid
- Fingerprint: 59:6f:56:07:f5:a8:bf:fe:7a:57:75:37:a8:57:76:8c:0f:9f:6f:9d
(R)eject, accept (t)emporarily or accept (p)ermanently? svn: Commit failed (details follow):
svn: OPTIONS of 'https://code.sidelab.es/svn/optsicomres/res/trunk': Server certificate verification failed: issuer is not trusted (https://code.sidelab.es)
Error validating server certificate for 'https://code.sidelab.es:443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: code.sidelab.es
- Valid: from Fri, 09 Sep 2011 13:42:29 GMT until Mon, 06 Sep 2021 13:42:29 GMT
- Issuer: Web, Sidelab, ES, Madrid
- Fingerprint: 59:6f:56:07:f5:a8:bf:fe:7a:57:75:37:a8:57:76:8c:0f:9f:6f:9d
(R)eject, accept (t)emporarily or accept (p)ermanently? svn: OPTIONS of 'https://code.sidelab.es/svn/optsicomres/res': Server certificate verification failed: issuer is not trusted (https://code.sidelab.es)

En principi el problema se soluciona accedint a la màquina i fent qualsevol operació a mà amb subversion des del mateix usuari amb el qual s’executa svn des Jenkins. No obstant això, la cosa no és tan senzilla de vegades, perquè és possible que no puguem utilitzar directament l’usuari per això de forma interactiva. Això es dóna quan l’usuari que executa Jenkins és un usuari sense login com ara l’usuari tomcat o www-data. Així que vaig a deixar aquí un mètode genèric que hauria de funcionar en (gairebé) qualsevol cas:

  • Connecta’t a la màquina amb un usuari qualsevol.
  • Executa alguna operació sobre el repositori, per exemple svn info https://miservidor/path/repo.
  • Accepta permanentment el certificat prement “p”.
  • Copia el fitxer generat a la carpeta .subversion/auth/svn.ssl.servers/ dins de l’home de l’usuari a la mateixa estructura de carpetes dins de l’home de l’usuari amb el qual s’executa Jenkins.

amb aquest mecanisme he estat capaç de solucionar el problema, i ara es poden fer commits i qualsevol tipus d’operació sobre el repositori de forma automàtica des de Jenkins sense problemes.

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *