Reverse proxy Jenkins

De EjnTricks
Révision de 28 juin 2018 à 12:49 par Etienne (discussion | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

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.

Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Study icon.png 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.


Icon-Configuration-Settings.png Configuration

Process-icon.png 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"

Lock-icon.png 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.


Viewer icon.png Voir aussi

Documentation officielle : https://wiki.jenkins-ci.org/display/JENKINS/Running+Jenkins+behind+Apache