HAProxy: configurando o SSL com o Let's Encrypt

1

Acabei de gerar um novo certificado SSL usando Vamos criptografar . Agora estou tentando configurar o HAProxy.

Estas são as pastas e os certificados:

700  archive
     |--------> 755 company.cxx
                    |------------> 644 fullchain.pem
                    |------------> 644 cert.pem
                    |------------> 644 (etc.)  

Neste momento, estas são as permissões de pastas e links soft para os certificados na pasta archive :

700  live
     |--------> 755 company.cxx
                    |------------> 777 fullchain.pem
                    |------------> 777 cert.pem
                    |------------> 777 (etc.)         

O HAProxy é configurado assim:

frontend public
    bind :80
    bind :443 ssl crt /etc/letsencrypt/live/company.cxx/fullchain.pem

E o erro é este:

Proxy 'public': no SSL certificate specified for bind ':443' at [/etc/haproxy/haproxy.cfg:12] (use 'crt').
Fatal errors found in configuration.

Não sei se as permissões são o problema, mas estou preocupado sobre qual seria a maneira correta de fazer isso com o HAProxy. Eu apreciarei sua ajuda.

EDIT: Apenas para testar, tentei copiar os certificados para /etc/haproxy , mas não funcionou.

    
por JonDoe297 03.08.2016 / 03:55

2 respostas

1

A solução é explicada em DigitalOcean . Resumindo:

  • Crie um arquivo pem concatenando fullchain.pem e privkey.pem
  • Mova esse novo arquivo para /etc/haproxy/certs
  • Configurar o HAProxy
por 03.08.2016 / 04:28
1

Conforme especificado em sua própria resposta, o mínimo necessário de LetsEncrypt (LE) é uma versão concatenada de fullchain.pem e privkey.pem .

Mas executar o cliente LE manualmente toda vez que o certificado expirar, derruba o propósito de usar o LE. Além disso, você não pode usar o cliente LE no modo autônomo se sua instância HAProxy já estiver escutando na porta 80 para outros sites.

Como alternativa, você pode estar interessado neste plug-in de validação do HAProxy ACME .

The plugin leverages HAProxy's Lua API to allow HAProxy to answer validation challenges using token/key-auth files provisioned by an ACME client to a designated directory.

Essencialmente, você tem o HAProxy enviando todas as solicitações que correspondem ao conhecido caminho de validação ACME para um plug-in de LUA que responde automaticamente à solicitação de qualquer domínio que esteja sendo solicitado. Você também tem uma configuração de tarefa cron que verifica as expirações do certificado regularmente e as renova automaticamente antes de expirarem. Portanto, sua única etapa manual é solicitar o certificado inicial de um domínio e adicionar a referência PEM ao seu arquivo de configuração HAProxy. Depois disso, o cron job mantém seu certificado sempre atualizado (hipoteticamente).

    
por 03.08.2016 / 08:57