No modo TCP, o HAproxy na verdade não encerra o SSL, apenas passa os pacotes para o backend. Como https-frontend
não pode decodificar os cabeçalhos nas linhas a seguir, apenas passa tudo para o default_backend
.
Você terá que especificar um certificado na linha bind
e executar o Frontend e o Backends em mode http
.
Por exemplo:
frontend http-frontend
bind 10.1.0.4:80
redirect scheme https if !{ ssl_fc }
frontend https-frontend
bind 10.1.0.4:443 ssl crt /etc/ssl/haproxy.pem
option httplog
mode http
acl is_local hdr_end(host) -i mirror.skbx.co
acl is_kiev hdr_end(host) -i kiev.skbx.co
use_backend kiev if is_kiev
default_backend wwwlocalbackend
backend wwwlocalbackend
mode http
server 1-www 127.0.0.1:443
backend kiev
mode http
server 1-www 10.8.0.6:443
Em que /etc/ssl/haproxy.pem
contém um certificado para todos os domínios que você deseja hospedar ou um certificado curinga que os cobre.
Se você tiver certificados separados para cada domínio, será necessário seguir a configuração de frontend ft_test
da resposta aceita na pergunta que você postou ( Configurar vários certificados SSL no Haproxy ).