A solução é explicada em DigitalOcean . Resumindo:
- Crie um arquivo pem concatenando
fullchain.pem
eprivkey.pem
- Mova esse novo arquivo para
/etc/haproxy/certs
- Configurar o HAProxy
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.
A solução é explicada em DigitalOcean . Resumindo:
fullchain.pem
e privkey.pem
/etc/haproxy/certs
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).