Am 18.07.14 15:48, schrieb Jacob Gibson:
> I realize that not everyone may have had those old messages around.  I have 
> included my original post below.  Also, I've
> read that using the ssl sessionid is not reliable so I'm looking for an 
> alternative.
> 
> I was happily using HAProxy, until I received word that we need to also 
> encrypt traffic to the web servers.  So,
> internet --https--> load balancer --https--> web servers.  Can I still do 
> this with HAProxy?  We don't need any Layer 7
> rules.  If so, what would the config look like?
> 
> We do need the following:
> 
> 1) HTTPS all the way through

thats no problem. we do it in our setup.

this is (part) of our setup:

defaults
    mode http
    option forwardfor

frontend https
    bind 12.23.45.56:443 ssl no-sslv3 crt /opt/haproxy/haproxy.ssl.crt
    capture request header Host len 32

    reqadd X-Forwarded-Proto:\ https

# you could add headers
http-request set-header X-SSL                       %[ssl_fc]
http-request set-header X-SSL-Client-Verify         %[ssl_c_verify]
http-request set-header X-SSL-Client-SHA1           %{+Q}[ssl_c_sha1]
http-request set-header X-SSL-Client-DN             %{+Q}[ssl_c_s_dn]
http-request set-header X-SSL-Client-CN             %{+Q}[ssl_c_s_dn(cn)]
http-request set-header X-SSL-Issuer                %{+Q}[ssl_c_i_dn]
http-request set-header X-SSL-Client-Not-Before     %{+Q}[ssl_c_notbefore]
http-request set-header X-SSL-Client-Not-After      %{+Q}[ssl_c_notafter]

    default_backend lbhttps
    monitor-uri   /ok


backend lbhttps
    server master 10.11.12.13:443 ssl maxconn 50 check  weight 1 inter 5s rise 
3 fall 2 verify none
    server slave  10.11.12.14:443 ssl maxconn 50 check backup weight 1 inter 5s 
rise 3 fall 2 verify none


> 2) Web servers need to see the IP of the user

thats a (small) problem with haproxy. as it acts as a http-proxy the webserver 
will only see the ip-adress of haproxy.
but you can use x-forwared-for header or set it like in the example above. but 
then your application will have to use
that header and not REMOTE_ADDR

> 3) Users need sticky sessions to a web server (where the sticky assignment 
> counter gets refreshed on each user request)

i asume, that this will work. we only use one backend server for SSL. but the 
setup for lbhttps is a fallback-setup. so
when "master" is not there all the requests are routet to slave.

> 5) Mobile and older browser support (I say this because I keep reading this 
> about SNI, but I don't know if that applies
> to us)
this is nothing that is affected by haproxy. thats general. problem is, that 
you only can have *one* ssl-server
listening/binding to an ip-address. multiple virtual servers like with http 
will not work.


markus


Reply via email to