On 12/8/23 14:35, Ionel GARDAIS wrote:
Thanks Tristan.

So typically I’d say to add to every single http frontend:

 > http-request set-header X-Forwarded-For %[src]
http-request set-header X-Forwarded-Host %[hdr(Host)]
http-request set-header X-Forwarded-Proto %[ssl_fc,iif(https,http)]
http-request set-header Forwarded "by=${HOSTNAME};for=%[src];host=%[hdr(Host)];proto=%[ssl_fc,iif(https,http)]"|


Almost what I already did :)
What about using %[hdr(host,1)] to forcefully use the first Host header if multiple headers are sent ?

What I have done:

In "defaults" I have:

 option  forwardfor except 127.0.0.1

In the https frontend, I have the following header-related options, in this order:

 http-request del-header [Ff]orwarded.+ -m reg
 http-request del-header [Xx]-[Ff]orwarded.+ -m reg
http-request add-header Forwarded "by=\"${HOSTNAME}\"; for=\"%[src]\"; host=\"%[hdr(Host)]\"; proto=https"
 http-request set-header X-H3 true if { so_name -i -m beg quic443 }
 http-request set-header X-Scheme https
 http-request set-header X-Forwarded-Scheme https
 http-request set-header X-Forwarded-Port %fp
 http-request set-header X-Forwarded-Proto https
 http-request set-header X-Forwarded-HTTPS true
 http-request set-header X-Forwarded-Host %[req.hdr(Host)]
 http-request set-header X-Forwarded-SSL true
 http-request set-header X-Haproxy-Current-Date %T
 http-request set-header X-HTTPS on
 http-request set-header X-SSL %[ssl_fc]
 http-request set-header X-SSL-Session_ID %[ssl_fc_session_id,hex]
http-after-response set-header Strict-Transport-Security "max-age=16000000; includeSubDomains; preload;"
 http-after-response add-header alt-svc 'h3=":443"; ma=7200'

Question for the group: Does that look like a good config? Should I be doing something different?

Thanks,
Shawn


Reply via email to