Pesquisa de site

Como configurar um certificado SSL CA no HAProxy


O HAProxy é um proxy reverso amplamente utilizado, confiável e de alto desempenho, que oferece alta disponibilidade e recursos de balanceamento de carga para aplicativos TCP e HTTP. Por padrão, ele é compilado com OpenSSL, suportando assim a terminação SSL, permitindo que sua pilha de sites/aplicativos criptografe e descriptografe o tráfego entre seu “servidor de entrada da web” ou gateway de acesso de aplicativos. aplicações servidor e cliente.

Este guia mostra como configurar um certificado CA SSL no HAPorxy. Este guia pressupõe que você já recebeu seu certificado da CA e está pronto para instalá-lo e configurá-lo em um servidor HAProxy.

Os arquivos esperados são:

  • O próprio certificado.
  • Os certificados intermediários também chamados de pacotes ou cadeias, e.
  • A CA raiz, se disponível, e.
  • A chave privada.

Crie um arquivo de certificado SSL formatado em PEM

Antes de configurar seu certificado CA no HAProxy, você precisa entender que o HAProxy requer um único arquivo .pem que deve conter o conteúdo de todos os arquivos acima, concatenados na seguinte ordem:

  • A chave privada que termina com .key, (pode vir no início ou no final do arquivo).
  • Seguido pelo Certificado SSL (geralmente termina com .crt).
  • Em seguida, o CA-Bundle (geralmente termina com .ca-bundle) e
  • A CA raiz, se disponível.

Para criar o arquivo .pem, vá para o diretório que contém seus arquivos de certificado, por exemplo, ~/Downloads, e execute o comando cat assim (substitua os nomes dos arquivos de acordo):

cat example.com.key STAR_example_com/STAR_example_com.crt STAR_example_com/STAR_example_com.ca-bundle > example.com.pem

Configurar certificado SSL PEM no HAProxy

Em seguida, carregue o arquivo de certificado .pem recém-criado para o servidor HAProxy usando o comando scp conforme mostrado (substitua sysadmin e 192.168. 10.24 com o nome de usuário e endereço IP do servidor remoto, respectivamente):

scp example.com.pem  [email :/home/sysadmin/

Em seguida, crie um diretório onde o arquivo .pem do certificado será armazenado usando o comando mkdir e copie o arquivo nele:

sudo mkdir -p /etc/ssl/example.com/
sudo cp example.com.pem /etc/ssl/example.com/

Em seguida, abra seu arquivo de configuração HAProxy e configure o certificado na seção do ouvinte frontend, usando os parâmetros ssl e crt: o primeiro habilita a terminação SSL e o último especifica a localização do arquivo de certificado.

frontend http_frontend
      mode http
      bind *:80
      bind *:443 ssl crt  /etc/ssl/example.com/example.com.pem alpn h2,http/1.1
     redirect scheme https code 301 if !{ ssl_fc }
      default_backend http_servers

Certas versões de SSL/TLS não são recomendadas para uso agora devido a vulnerabilidades que foram descobertas nelas. Para limitar a versão suportada do SSL, você pode adicionar o parâmetro ssl-min-ver assim:

bind *:443 ssl crt  /etc/ssl/example.com/example.com.pem alpn h2,http/1.1   ssl-min-ver TLSv1.2

Configure o HAProxy para redirecionar HTTP para HTTPS

Para garantir que seu site seja acessível apenas via HTTPS, você precisa ativar o HAProxy para redirecionar todo o tráfego HTTP para HTTPS caso um usuário tente acesse-o por HTTP (porta 80).

Adicione a seguinte linha à configuração acima:

redirect scheme https code 301 if !{ ssl_fc }
OR
http-request redirect scheme https unless { ssl_fc }

Sua seção de frontend agora deve se parecer com esta configuração de exemplo:

frontend http_frontend
      mode http
      bind *:80
      bind *:443 ssl crt  /etc/ssl/example.com/example.com.pem alpn h2,http/1.1  ssl-min-ver TLSv1.2
      redirect scheme https code 301 if !{ ssl_fc }
      default_backend   http_servers

backend http_servers
      mode http
      balance roundrobin
      option httpchk HEAD /
      http-response set-header X-Frame-Options SAMEORIGIN
      http-response set-header X-XSS-Protection 1;mode=block
      http-response set-header X-Content-Type-Options nosniff
      default-server check maxconn 5000
      server http_server1 10.2.1.55:80

Salve o arquivo de configuração e feche-o.

Em seguida, verifique se sua sintaxe está correta usando o seguinte comando:

sudo haproxy -f /etc/haproxy/haproxy.cfg -c

Se o arquivo de configuração for válido, recarregue o serviço haproxy para capturar as alterações recentes na configuração, usando o comando systemctl:

sudo systemctl reload haproxy

Por último, mas não menos importante, teste toda a configuração acessando seu site a partir de um navegador da web e certifique-se de que o certificado esteja carregando corretamente e que o navegador indique que “A conexão é segura”!

Isso é tudo! Esperamos que este guia tenha ajudado você a configurar um certificado SSL no software balanceador de carga HAProxy. Se você encontrar algum erro, informe-nos por meio do formulário de feedback abaixo. Teremos prazer em ajudá-lo.