Reverse proxy Jenkins
Jenkins
implémente de nombreuses vérifications sur les configurations, dont une qui permet de vérifier la donne configuration du Reverse Proxy
. Mais même en suivant la documentation officielle, un message d'erreur peut être remonté sur l'interface d'administration.
Votre avis
Nobody voted on this yet
|
|
Analyse
Suite à la mise à jour 1.552, une erreur de reverse proxy est indiqué dans la page d'administration.
Le message indique une erreur de configuration du mode Reverse Proxy
La configuration de votre proxy inverse n'est pas bonne
Le rendu du message dépend de la version installée, il se présente ainsi sur une version 2.X
.
Les vérifications ont été plus enrichies dans les versions suivantes, et des configurations valides préalablement peuvent être considérées comme invalides.
Configuration
Serveurs Web
La configuration Apache
doit indiquer que les paramétres encodés doivent être transféré telquel, à l'aide de la directive AllowEncodedSlashes NoDecode
. De plus, l'argument nocanon
doit être mis en place au niveau de la définition du Proxy
. La configuration est similaire à la suivante.
ProxyRequests Off
AllowEncodedSlashes NoDecode
ProxyPass /jenkins http://localhost:8080/jenkins nocanon
ProxyPassReverse /jenkins http://localhost:8080/jenkins
Cependant, ceci peut ne pas être nécessaire. Dans le cadre de cette installation, Jenkins
est déployé sur un serveur Tomcat
. Or celui-ci n'est pas configuré pour accepter les arguments encodés. Il faut spécifier la valeur true
à l'aide de la variable d'enironnement org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH
.
Pour cette installation, le fichier /var/lib/tomcat8/bin/setenv.sh
est modifié, comme indiqué dans l'article suivant, pour ajouter le paramétrage dans la variable d'exécution CATALINA_OPTS
.
export CATALINA_OPTS="-Xms256m -Xmx512m -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true"
CSRF Protection
Attention dans le cadre de l'utilisation d'un proxy, il est nécessaire de modifier les paramètres de la protection CSRF
accessible depuis la page de configuration de la sécurité globale, dans l'interface d'administration.
Il existe la section CSRF Protection
dans laquelle il est recommandé d'activer l'option Se protéger contre les exploits de type Cross Site Request Forgery
. Et pour les paramètres Crumbs
, il faut activer l'option Activer la compatibilité proxy
.
Par exemple, la gestion des identifiants provoque des erreurs 403
si l'option n'est pas activée, avec un publisation sous Apache
.
Voir aussi
Documentation officielle: https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache