[Résolu] HAProxy Reverse Proxy HTTPS domaines multiples

HAProxy Reverse Proxy HTTPS domaines multiples [Résolu] - Infrastructures serveurs - Systèmes & Réseaux Pro

Marsh Posté le 04-02-2014 à 16:31:32    

Salut à tous,
 
Le contexte :
Dans mon entreprise, chaque site web public dispose de sa propre IP publique et d'un chiffrement SSL. Evidemment, les IP publiques ne sont pas illimitées.
Je leur ai donc proposé un reverse proxy utilisant une seule IP publique, distribuant les requêtes sur le bon serveur interne selon le nom de domaine demandé. Mais j'ai quelques soucis à mettre ça en place.
 
Je suis parti au début sur deux serveurs Debian Wheezy avec HAproxy et Keepalived pour créer un "cluster" de proxy.
Problème => la dernière version stable de HAproxy ne gère apparemment pas le https... dommage la config était très simple...
 
J'ai commencé à chercher du côté d'apache, nginx et consorts, et ils semblent faire du SSL termination, c'est à dire qu'ils décryptent et font ensuite du http entre le serveur web et le reverse proxy, ce qui ne me plaît pas.
Je me rappelle avoir fait du SSL de bout en bout avec ISA Server 2010, quelqu'un a fait ça sous Linux et pourrait m'éclairer ?


Message édité par CK Ze CaRiBoO le 05-02-2014 à 18:42:39

---------------
The only thing necessary for the triumph of evil is for good people to do nothing.
Reply

Marsh Posté le 04-02-2014 à 16:31:32   

Reply

Marsh Posté le 04-02-2014 à 16:35:16    

Hmmm déjà fait du ssl bridging avec squid en reverse proxy.
 
Après tu es sûr pour HAProxy ? Ca me semble bizarre.
http://blog.exceliance.fr/2012/04/ [...] extension/

Reply

Marsh Posté le 04-02-2014 à 16:50:24    

Je@nb a écrit :

Hmmm déjà fait du ssl bridging avec squid en reverse proxy.
 
Après tu es sûr pour HAProxy ? Ca me semble bizarre.
http://blog.exceliance.fr/2012/04/ [...] extension/


Me semble l'avoir lu mais je vais double-checker ça.
En tout cas il m'envoie bouler quand je tente de bind du SSL dans mes entrées Frontend dans haproxy.cfg en disant que SSL n'est pas une option valide.


---------------
The only thing necessary for the triumph of evil is for good people to do nothing.
Reply

Marsh Posté le 04-02-2014 à 16:59:32    

ta version n'est peut être pas compilée avec le support de ssl (par exemple squid sur debian n'est par défaut pas compilé avec, il faut le repackager ...)

Reply

Marsh Posté le 04-02-2014 à 17:09:17    

Je viens de tomber là dessus aussi. Par contre je l'ai installée via apt, sans la compiler moi-même.
En install manuelle il aurait fallu ajouter USE_OPENSSL=yes dans la commande.
Mais dans mon cas je sais pas trop comment activer le truc je vais chercher.


---------------
The only thing necessary for the triumph of evil is for good people to do nothing.
Reply

Marsh Posté le 04-02-2014 à 17:20:24    

il faut que tu récupères les sources du package debian, change la ligne de compilation pour ajouter le USE_OPENSSL=yes, install openssl-dev (ou libssl-dev je sais pas) puis lancer la creation du package.
 
Donc je pense que tu as plus vite fait de compiler depuis les sources :D

Reply

Marsh Posté le 04-02-2014 à 17:28:47    

Ouais mais nan je confirme, il n'y a l'option SSL que sur les versions 1.5-devXX qui sont marquées "may be broken" dans les notes :D


---------------
The only thing necessary for the triumph of evil is for good people to do nothing.
Reply

Marsh Posté le 05-02-2014 à 14:07:38    

Retour après avoir presque fini de tout configurer :
SSL n'est supporté qu'à partir de la version 1.5 (c'est à dire en développement pour le moment).
Je suis effectivement passé par du Reverse SSL pour avoir du SSL des deux côtés du reverse proxy.
Il reste juste à voir le problème de l'authentification IIS qui ne passe pas à travers...

Reply

Marsh Posté le 05-02-2014 à 14:10:41    

Du coup tu as config en 1.5 ou tu es passé par autre chose ?

Reply

Marsh Posté le 05-02-2014 à 14:55:11    

Je teste en 1.5 pour le moment. Du côté des autres, à part des solutions à base de stunel je n'ai pas vu grand chose et ça a l'air assez pourri en perf ?


---------------
The only thing necessary for the triumph of evil is for good people to do nothing.
Reply

Marsh Posté le 05-02-2014 à 14:55:11   

Reply

Marsh Posté le 05-02-2014 à 15:13:39    

Ca doit faire un an à peu près que j'avais testé du 1.5 mais jamais pour de la vrai prod. Ca marchait bien.
 
Pour exchange principalement. L'auth ntlm passe mais il y avait une option à virer je sais plus laquelle :D

Reply

Marsh Posté le 05-02-2014 à 16:24:41    

Rahlala je galère depuis 3h sur ce problème, si tu pouvais m'éviter le saignement de nez en retrouvant tes notes ! :D


---------------
The only thing necessary for the triumph of evil is for good people to do nothing.
Reply

Marsh Posté le 05-02-2014 à 16:31:53    

tu as essayé de dégager option httpclose ? (trouvé ça sur google vite fait)

Reply

Marsh Posté le 05-02-2014 à 16:33:53    

Hop bouge plus je viens de trouver (grace à toi, je sais pas pourquoi j'avais pas encore tapé NTLM dans mes mots clés google... je suis fatigué !)
Il faut virer ces options si elles sont présentes dans la configuration du backend qui utilise NTLM :
option http-server-close
option httpclose
option forclose
C'est pourri comme config mais NTLM nous y oblige.


---------------
The only thing necessary for the triumph of evil is for good people to do nothing.
Reply

Marsh Posté le 05-02-2014 à 16:40:14    

Un ptit extrait du haproxy.cfg configuré pour le SSL Bridging pour deux sites différents dont l'un qui utilise NTLM si ça peut servir à d'autres :
 

Code :
  1. frontend https-in
  2.  mode http
  3.  bind *:443 ssl crt-list /etc/haproxy/certificates transparent
  4.  reqadd X-Forwarded-Proto:\ https
  5.  #Definitions des ACL pour le routage par domaine
  6.  acl host_sitephp hdr(host) -i sitephp.monsite.com
  7.  acl host_sitentlm hdr(host) -i sitentlm.monsite.com
  8.  #Regles de routage si une ACL est respectee
  9.  use_backend sitephp if host_sitephp
  10.  use_backend sitentlm if host_sitentlm
  11.  #Routage par defaut si erreur
  12.  default_backend sitephp
  13. backend sitephp
  14.  mode http
  15.  balance leastconn
  16.  option http-server-close
  17.  option forwardfor
  18.  server node1 10.X.X.1:443 check ssl verify required ca-file /etc/haproxy/CA.pem
  19. backend sitentlm
  20.  mode http
  21.  balance leastconn
  22.  #option http-server-close <= Plante l'authentification NTLM
  23.  option forwardfor
  24.  server node1 10.x.x.2:443 check ssl verify required ca-file /etc/haproxy/CA.pem


Message édité par CK Ze CaRiBoO le 05-02-2014 à 16:40:44

---------------
The only thing necessary for the triumph of evil is for good people to do nothing.
Reply

Marsh Posté le 05-02-2014 à 16:54:42    

disons que NTLM ne respecte pas vraiment le standard HTTP du coup tu es obligé de passer pas des cradosseries du genre :D

Reply

Marsh Posté le 05-02-2014 à 17:07:53    

C'est le sens du message d'un des principaux contributeurs à haproxy que j'ai lu tout à l'heure ouais :')
En tout cas merci beaucoup pour ton aide !


---------------
The only thing necessary for the triumph of evil is for good people to do nothing.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed