Como configurar um certificado CA SSL em Haproxy

Como configurar um certificado CA SSL em Haproxy

O Haproxy é um proxy reverso reverso de alto desempenho e utilizado, que oferece capacidades de alta disponibilidade e balanceamento de carga para aplicativos TCP e HTTP. Por padrão, é compilado com OpenSSL, Assim, apoiando Ssl Rescisão, permitindo seu site/pilha de aplicativos para criptografar e descriptografar o tráfego entre o seu "servidor de entrada da web" ou o servidor de gateway de acesso ao aplicativo e aplicativos de cliente.

Este guia mostra como configurar um CA SSL certificado em HOPORXY. Este guia assume que você já recebeu seu certificado da CA e está pronto para instalar e configurá -lo em um servidor Haproxy.

Os arquivos esperados são:

  • O próprio certificado.
  • Os certificados intermediários também chamavam pacotes ou correntes, e.
  • A raiz ca, se disponível, e.
  • A chave privada.

Crie um arquivo de certificado SSL formatado por PEM

Antes de configurar o seu Ca certificado em Haproxy, você precisa entender isso Haproxy requer um único .PEM Arquivo que deve conter o conteúdo de todos os arquivos acima, concatenados na seguinte ordem:

  • A chave privada que termina com .chave, (pode vir no início ou no final do arquivo).
  • Seguido pelo certificado SSL (geralmente termina com .Crt).
  • Então o Ca-Bundle (geralmente termina com .Ca-Bundle), e
  • A raiz ca, se disponível.

Para criar o .PEM Arquivo, mova -se para o diretório que possui seus arquivos de certificado e.g ~/Downloads, Em seguida, execute o comando CAT como este (substitua os nomes dos arquivos de acordo):

$ CAT Exemplo.com.key star_example_com/star_example_com.CRT Star_example_com/star_example_com.Ca-Brendle> Exemplo.com.PEM 

Configurar o certificado PEM SSL em Haproxy

Em seguida, envie o recém -criado .PEM arquivo de certificado para o Haproxy servidor usando o comando scp como mostrado (substitua sysadmin e 192.168.10.24 com o nome de usuário do servidor remoto e o endereço IP, respectivamente):

$ SCP Exemplo.com.PEM [email protegido]:/home/sysadmin/ 

Em seguida, crie um diretório onde o certificado .PEM O arquivo será armazenado usando o mkdir Comando e copie o arquivo para ele:

$ sudo mkdir -p/etc/ssl/exemplo.Exemplo de com/ $ sudo cp.com.PEM/etc/ssl/exemplo.coma 

Em seguida, abra seu Haproxy Arquivo de configuração e configure o certificado na seção do ouvinte do front -end, usando os parâmetros SSL e CRT: o primeiro permite a terminação SSL e o último especifica a localização do arquivo de certificado.

Frontend HTTP_FRONTEND Modo HTTP Bind *: 80 Bind *: 443 SSL CRT/etc/SSL/Exemplo.com/exemplo.com.PEM ALPN H2, HTTP/1.1 Esquema de redirecionamento Código HTTPS 301 se !ssl_fc default_backend http_servers 

Certas versões de SSL/TLS não são recomendados para uso agora por causa de vulnerabilidades que foram descobertas nelas. Para limitar a versão suportada de Ssl, você pode adicionar o ssl-min-ver parâmetro como este:

Bind *: 443 SSL CRT/etc/SSL/Exemplo.com/exemplo.com.PEM ALPN H2, HTTP/1.1 ssl-min-vers tlsv1.2 

Configurar o Haproxy para redirecionar http para https

Para garantir que seu site seja acessível apenas via Https, você precisa permitir que o Haproxy redirecione tudo Http tráfego para Https Caso um usuário tenta acessá -lo sobre HTTP (porta 80).

Adicione a seguinte linha à configuração acima:

Esquema de redirecionamento Código HTTPS 301 se !SSL_FC ou HTTP-REQUEST Esquema de redirecionamento https, a menos que ssl_fc 

Sua seção de front -end agora deve se parecer com a da configuração de amostra:

Frontend HTTP_FRONTEND Modo HTTP Bind *: 80 Bind *: 443 SSL CRT/etc/SSL/Exemplo.com/exemplo.com.PEM ALPN H2, HTTP/1.1 ssl-min-vers tlsv1.2 Esquema de redirecionamento Código HTTPS 301 se !ssl_fc default_backend http_servers back-end http_servers Modo http balance redondrobin opção httpchk cabeça / http-response set hateler x-frame-options-options sameorigin http-resposta set-renseSenseSt XSS-PROTECTIONS 1; -Content-Type-Options NoSniff padrão-servidor Verifique 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 
Verifique a configuração do Haproxy

Se o arquivo de configuração for válido, vá em frente e recarregue o serviço Haproxy para obter as recentes alterações na configuração, usando o comando SystemCTL:

$ sudo systemctl recarregar haproxy 

Por último, mas não menos importante, teste toda a configuração acessando seu site a partir de um navegador da web e verifique se o certificado está carregando bem e o navegador indica que o “A conexão é segura”!

Verifique o site da Haproxy

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