Hi,
I am a beginner in HAProxy and I was trying to achieve this. I have 4 VMs, one having HAProxy server and Apache httpd server in other 3 VMs. I have test.html
on all three servers. When user hit https://haproxy_ip/test.html
, the file may be delivered from any server.
I have generated separate SSL certificate in each VM (by referring these urls How to enable https on Apache CentOS - TechRepublic and https://www.suse.com/support/kb/doc/?id=000018152) and copied the pem and key files to HAProxy VM. Now, all three pem files are available under /etc/haproxy/
directory.
I have configured ssl crt-list
to pick corresponding SSL certificate by HAProxy, and below is how crt-list.txt
looks like;
/etc/haproxy/testserver1.pem testserver1
/etc/haproxy/testserver2.pem testserver2
/etc/haproxy/testserver3.pem testserver3
What I am looking for is, when user request https://haproxy_ip/test.html
in browser, the certificate that need to be delivered each time should be based on the backend server picked by HAProxy.
Is this possible / supported by HAProxy? If yes, can somebody please help me?
Below is my current configuration;
global
maxconn 50000
log /dev/log local0
log /dev/log local1 notice
user root
group root
stats timeout 30s
nbproc 2
cpu-map auto:1/1-4 0-3
ssl-default-bind-ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
daemon
defaults
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend ft_http
bind :80
mode http
default_backend bk_http
frontend ft_https
bind :443 ssl crt-list /etc/haproxy/crt-list.txt
mode tcp
default_backend bk_https
backend bk_http
mode http
balance roundrobin
default-server inter 1s
server testserver1 192.168.0.1:80 check
server testserver2 192.168.0.2:80 check
server testserver3 192.168.0.3:80 check
backend bk_https
mode tcp
balance roundrobin
stick-table type ip size 200k expire 1m
default-server inter 1s
server testserver1 192.168.0.1:443 check
server testserver2 192.168.0.2:443 check
server testserver3 192.168.0.3:443 check
Thanks in advance…
3 posts - 2 participants