5505 links
  • GuiGui's Show

  • Home
  • Login
  • RSS Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
page 1 / 1
  • How to Rewrite Location Response Header in a Proxy Setup with Apache - Stack Overflow

    Soit un proxy web avec Apache httpd qui transfert les requêtes des client⋅e⋅s à un serveur Tomcat. Le proxy force le client à revenir lui causer en HTTPS, mais transfert les requêtes en HTTP, c'est-à-dire en clair, au Tomcat (car ce sont deux machines virtuelles sur le même hyperviseur donc le risque est quasi nul et que configurer Tomcat, pour mettre en œuvre HTTPS ou autre chose, c'est une plaie donc no way).

    Problème : si l'application exécutée par le Tomcat envoie une redirection HTTP, elle code le protocole, http, en dur dans la réponse. Apache httpd transfert ça au client… qui demande la bonne ressource au proxy… en clair. Ainsi l'HTTPS initial est détourné : n'importe qui sur Internet, entre le client et le proxy, voit les ressources qui sont demandées. Pas le contenu, certes, mais l'URL précise tout de même… C'est préoccupant d'un point de vue vie privée.

    Pour s'en rendre compte, on utilise wget :

    $ wget https://lala.example.net
    --2017-09-05 11:51:37--  https://lala.example.net/
    Résolution de lala.example.net (lala.example.net)… 192.0.2.1
    Connexion à lala.example.net (lala.example.net)|192.0.2.1|:443… connecté.
    requête HTTP transmise, en attente de la réponse… 302 
    Emplacement : http://lala.example.net/mon_appli/index.html [suivant]
    --2017-09-05 11:51:39--  http://lala.example.net/mon_appli/index.html
    Connexion à lala.example.net (lala.example.net)|192.0.2.1|:80… connecté.
    requête HTTP transmise, en attente de la réponse… 302 Found
    Emplacement : https://lala.example.net/mon_appli/index.html [suivant]
    --2017-09-05 11:51:39--  https://lala.example.net/mon_appli/index.html
    Connexion à lala.example.net (lala.example.net)|192.0.2.1|:443… connecté.
    requête HTTP transmise, en attente de la réponse… 200 
    Taille : 11080 (11K) [text/html]
    Sauvegarde en : « index.html »

    Pour résoudre cela, on ajoute ce qui suit dans la configuration d'Apache httpd, en plus des directives ProxyPass habituelles :

    Header edit Location "(^http://)([^/]+)" ""

    Ainsi, l'URL de redirection sera tronquée du protocole, elle sera relative. Le client web comprendra qu'il faut revenir en HTTPS et non pas en HTTP.

    On reload Apache httpd et on vérifie :

    $ wget https://lala.example.net
    --2017-09-05 11:52:01--  https://lala.example.net/
    Résolution de lala.example.net (lala.example.net)… 192.0.2.1
    Connexion à lala.example.net (lala.example.net)|192.0.2.1|:443… connecté.
    requête HTTP transmise, en attente de la réponse… 302 
    Emplacement : /mon_appli/index.html [suivant]
    --2017-09-05 11:52:01--  https://lala.example.net/mon_appli/index.html
    Réutilisation de la connexion existante à lala.example.net:443.
    requête HTTP transmise, en attente de la réponse… 200 
    Taille : 11080 (11K) [text/html]
    Sauvegarde en : « index.html.1 »
    Tue Sep 5 11:34:27 2017 - permalink -
    - https://stackoverflow.com/questions/16297233/how-to-rewrite-location-response-header-in-a-proxy-setup-with-apache
Links per page: 20 50 100
page 1 / 1
Mentions légales identiques à celles de mon blog | CC BY-SA 3.0

Shaarli - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community