Hi Sean!

You're welcome :)
I still have in my TODO list to contact you about your AVI network experience ;)

Talk to you soon.

Baptiste


On Wed, Mar 18, 2015 at 7:06 PM, Sean Patronis <[email protected]> wrote:
> Baptiste,
>
> Thanks for the links, I had run across them earlier this morning in my
> google searching, but your post made me pay more attention to them... I have
> it working now, and the trick that seemed to do it for me was making all the
> paths absolute (since I am forcing https anyhow, and each since
> frontend/backend combo is unique) with this line in my backend config:
>
> # ProxyPassReverse /mirror/foo/ http://bk.dom.com/bar
>  # Note: we turn the urls into absolute in the mean time
>  acl hdr_location res.hdr(Location) -m found
>  rspirep ^Location:\ (https?://localtest.test123.com(:[0-9]+)?)?(/.*)
> Location:\ \3 if hdr_location
>
>
> Thanks for all the help from everyone is this thread!
>
> --Sean Patronis
> Auto Data Direct Inc.
> 850.877.8804
>
> On 03/18/2015 12:06 PM, Baptiste wrote:
>>
>> Hi Sean,
>>
>> You may find some useful information here:
>>
>> http://blog.haproxy.com/2014/04/28/howto-write-apache-proxypass-rules-in-haproxy/
>> and here:
>>
>> http://blog.haproxy.com/2013/02/26/ssl-offloading-impact-on-web-applications/
>>
>> Baptiste
>>
>>
>> On Wed, Mar 18, 2015 at 3:39 PM, Sean Patronis <[email protected]>
>> wrote:
>>>
>>> Thanks for the link.  That looks promising, but testing did not change
>>> anything and I am waiting on the developers to give me some indication of
>>> what headers they may expect.  Maybe we can tackle this a different way
>>> since we know it works in apache.  I am attempting to replace the
>>> following
>>> VirtualHost in apache and put it into haproxy:
>>>
>>> ## [test.test123.com]
>>> <VirtualHost 10.0.60.5:443>
>>> ServerName test.test123.com
>>>          SSLEngine on
>>>          SSLProtocol all -SSLv3
>>>          SSLHonorCipherOrder On
>>>          SSLCipherSuite
>>>
>>> ECDHE-RSA-AES256-SHA384:AES256-SHA256:!RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM:!SSLV2:!eNULL
>>>          ProxyPassReverse / http://10.0.60.5/
>>>          ProxyPass       /  http://10.0.60.5/
>>> </VirtualHost>
>>>
>>> what haproxy frontend settings do I need to make this match whatever
>>> apache
>>> and mod_proxy is doing?
>>>
>>> 10.0.60.5:80 is already in haproxy....  I think the problem may be that
>>> there are some headers getting set by ProxyPass and ProxyPassReverse that
>>> I
>>> am not setting in haproxy.  More specifically, I think that the apache
>>> ProxyPassReverse is rewiting the problem URI to https, and haproxy is
>>> not.
>>>
>>> --Sean Patronis
>>> Auto Data Direct Inc.
>>> 850.877.8804
>>>
>>> On 03/17/2015 06:24 PM, Cyril Bonté wrote:
>>>>
>>>> Hi,
>>>>
>>>> Le 17/03/2015 20:42, Sean Patronis a écrit :
>>>>>
>>>>> Unfortunately that did not fix it.  I mirrored your config and the
>>>>> problem still exists.  I am not quite sure how the URL is getting built
>>>>> on the backend (the developers say it is all relative URL/URI), but
>>>>> whatever haproxy is doing, it is doing it differently than apache (with
>>>>> mod_proxy).  Just for fun, I swapped back the ssl termination to apache
>>>>> to prove that is does not have an issue (once it passes through apache
>>>>> for ssl, it still goes through Haproxy and all of the backends/acl
>>>>> etc).
>>>>>
>>>>> My goal in all of this was to ditch apache and go all haproxy on the
>>>>> front end.
>>>>>
>>>>> Any other ideas?
>>>>
>>>>
>>>> Have a look at this answer :
>>>> http://permalink.gmane.org/gmane.comp.web.haproxy/10361
>>>>
>>>> I assume that your application is not aware of an SSL termination, so
>>>> you
>>>> have to notify it with the right configuration, which depends on your
>>>> backends softwares. Can you provide some information on them ?
>>>>
>>>>
>>>>> --Sean Patronis
>>>>> Auto Data Direct Inc.
>>>>> 850.877.8804
>>>>>
>>>>> On 03/17/2015 11:51 AM, Scott McKeown|redIT wrote:
>>>>>>
>>>>>> Hi Sean,
>>>>>>
>>>>>> I've got a setup that is somewhat like what you are after. I have
>>>>>> however, done it in a very dirrerent way for this very same reason.
>>>>>>
>>>>>> Example below:
>>>>>>
>>>>>> global
>>>>>>          log /dev/log local4 debug
>>>>>>          maxconn 4096
>>>>>>          daemon
>>>>>>          tune.ssl.default-dh-param 2048
>>>>>>
>>>>>>          ssl-default-bind-ciphers
>>>>>>
>>>>>>
>>>>>> ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES256-SHA:HIGH:!RC4:!MD5:!aNULL:!EDH
>>>>>>
>>>>>>          ssl-default-bind-options no-sslv3
>>>>>>          ssl-default-server-ciphers
>>>>>>
>>>>>>
>>>>>> ECDHE-RSA-RC4-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES256-SHA:HIGH:!RC4:!MD5:!aNULL:!EDH
>>>>>>
>>>>>>          ssl-default-server-options no-sslv3
>>>>>>
>>>>>> defaults
>>>>>>          log     global
>>>>>>          option httplog
>>>>>>          retries 3
>>>>>>          timeout client  50000
>>>>>>          timeout connect 50000
>>>>>>          timeout server  50000
>>>>>>
>>>>>> listen http-in
>>>>>>          bind x.x.x.x:80
>>>>>>          mode http
>>>>>>          default_backend www_redit
>>>>>>
>>>>>> listen https-in
>>>>>>          bind x.x.x.x:443 ssl crt /etc/certs/server_2015.pem
>>>>>>          mode http
>>>>>>
>>>>>>          acl samson_vpn_gateway src 10.8.0.1
>>>>>>
>>>>>>          acl missing_nagios_slash path_reg -i ^/nagios3[^/]*$
>>>>>>          acl missing_cacti_slash path_reg -i ^/cacti[^/]*$
>>>>>>          acl missing_dradis_slash path_reg -i ^/customers[^/]*$
>>>>>>
>>>>>>          redirect code 301 prefix / drop-query append-slash if
>>>>>> missing_nagios_slash
>>>>>>          redirect code 301 prefix / drop-query append-slash if
>>>>>> missing_cacti_slash
>>>>>>          redirect code 301 prefix / drop-query append-slash if
>>>>>> missing_dradis_slash
>>>>>>
>>>>>>          acl is_nagios path_reg -i /nagios3/
>>>>>>          acl is_cacti path_reg -i /cacti/
>>>>>>          acl is_dradis path_reg -i /customers/
>>>>>>
>>>>>>          #VPN Access Only
>>>>>>          use_backend services if is_nagios samson_vpn_gateway
>>>>>>          use_backend services if is_cacti samson_vpn_gateway
>>>>>>          use_backend dradis if is_dradis
>>>>>>
>>>>>>          default_backend corp_site
>>>>>>
>>>>>> listen corp_site
>>>>>>          mode http
>>>>>>          log global
>>>>>>          option httpclose
>>>>>>          source 0.0.0.0 usesrc clientip
>>>>>>          option forwardfor
>>>>>>          server websites01 172.16.0.10:80 check inter 3000 fall 3
>>>>>>          server services1 172.16.0.5:80 check inter 3000 fall 3
>>>>>>
>>>>>> listen www_redit
>>>>>>          mode http
>>>>>>          redirect scheme https
>>>>>>
>>>>>>
>>>>>> This should do the trick for you you may want to try putting your
>>>>>> reqrep in or play around with the acl list and re-test with your
>>>>>> Headers but I've got mine built with TProxy enabled.
>>>>>>
>>>>>>
>>>>>> ~Scott
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 17/03/2015 15:36, Sean Patronis wrote:
>>>>>>>
>>>>>>> I seem to be having an interesting issue with forced ssl redirects in
>>>>>>> Haproxy 1.5.11
>>>>>>>
>>>>>>> Sorry if this sounds clear as mud, but here goes:
>>>>>>>
>>>>>>> When I load a domain that is served by haproxy that is supposed to
>>>>>>> force https, it initially forces the connection to be https (if you
>>>>>>> attempt to connect over http), but I get a Mixed content warning when
>>>>>>> it attempts to load another url that is based on the same domain.  If
>>>>>>> I allow the mixed content through the browser, it does not get
>>>>>>> redirected to https.  I am sure I just have something configured
>>>>>>> incorrectly, but I am not sure where.....
>>>>>>>
>>>>>>> I go to URL:
>>>>>>> https://localcaleb.test123.com/apps/test123/test.html
>>>>>>>
>>>>>>> inside the test123 app it makes a protocol-less request to another
>>>>>>> app which ends up using http (since the backend is http balanced)
>>>>>>> using this URL:
>>>>>>> http://localcaleb.test23.com/apps/testgw/login.jsp
>>>>>>>
>>>>>>> Since the we have a redirect for ssl in place, shouldn't the request
>>>>>>> get forced to https?  It worked this way when apache was acting as
>>>>>>> our SSL reverse proxy.  What am I doing incorrectly? If I allow mixed
>>>>>>> content in the browser, the haproxy logs show that it indeed connects
>>>>>>> over port 80 without getting redirected to 443.
>>>>>>>
>>>>>>>
>>>>>>> here is the fontend:
>>>>>>>
>>>>>>> frontend localcaleb.test123.com ## local Backends
>>>>>>>      bind 10.0.60.5:80
>>>>>>>      bind 10.0.60.5:443  ssl crt /etc/certs/test.bundle no-sslv3
>>>>>>> ciphers
>>>>>>>
>>>>>>>
>>>>>>> ECDHE-RSA-AES256-SHA384:AES256-SHA256:!RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM:!SSLV3:!eNULL
>>>>>>>
>>>>>>>      redirect scheme https if !{ ssl_fc }
>>>>>>>      option http-server-close
>>>>>>>      acl is_apps_match url_beg /apps/
>>>>>>>      use_backend caleblocal.test123.com if is_apps_match
>>>>>>>      default_backend caleb.test123.com
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> here are the relevant backends:
>>>>>>>
>>>>>>> backend caleblocal.test123.com
>>>>>>>      reqrep ^([^\ ]*)\ /apps/(.*)     \1\ /\2
>>>>>>>      server caleb-pc.staff.test123.com 192.168.166.182:8080 weight 50
>>>>>>> check
>>>>>>>      server maint maint.test123.com:81 check backup
>>>>>>>      http-request set-header X-Forwarded-Port %[dst_port]
>>>>>>>      http-request add-header X-Forwarded-Proto https if { ssl_fc }
>>>>>>>
>>>>>>>
>>>>>>> backend caleb.test123.com
>>>>>>>      reqrep ^([^\ ]*)\ /apps/(.*)     \1\ /\2
>>>>>>>      server caleb 10.0.3.216:80 weight 50 check
>>>>>>>      server maint maint.test123.com:81 check backup
>>>>>>>      http-request set-header X-Forwarded-Port %[dst_port]
>>>>>>>      http-request add-header X-Forwarded-Proto https if { ssl_fc }
>>>>>>>
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>
>>>>>> ---
>>>>>> This email has been checked for viruses by Avast antivirus software.
>>>>>> http://www.avast.com
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>>
>
>

Reply via email to