CAs confiáveis do HAproxy 1.5

3

Estou tentando fazer com que o HAproxy 1.5.x confie em qualquer autoridade de certificação que já esteja no armazenamento confiável da máquina ( /etc/ssl/certs ) sem precisar especificar explicitamente o certificado de autoridade raiz individual ca-file para ser confiável. Eu quero evitar o cenário de um determinado servidor backend usando um certificado emitido por uma autoridade diferente e causando uma indisponibilidade porque esse servidor de back-end não é mais confiável - apesar de a CA estar no armazenamento confiável da máquina.

Dentro de uma determinada seção backend do arquivo haproxy.cfg , a linha server tem uma opção chamada ca-file . Esta opção instrui o HAproxy a verificar a autoridade do certificado de servidor do back-end usando a autoridade fornecida. O problema é que isso aponta para uma única autoridade de certificação.

Eu encontrei a opção ca-base . A menos que eu esteja enganado, este é apenas um atalho para evitar ter que especificar o caminho completo do ca-file em cada declaração.

    
por Jonathan Oliver 21.08.2014 / 14:40

2 respostas

4

Recentemente, acertei esse problema na versão 1.5.6 onde recebi a mensagem de erro

verify is enabled by default but no CA file specified. If you're running on a LAN where you're certain to trust the server's certificate, please set an explicit 'verify none' statement on the 'server' line, or use 'ssl-server-verify none' in the global section to disable server-side verifications by default.

Isso estava relacionado a não especificar um ca-file , que você não pode especificar no nível do servidor padrão (de acordo com os documentos). Da mesma forma, eu não queria pensar na interrupção do serviço se o ponto de extremidade do backend tivesse seu certificado reemitido por outra CA.

Eu resolvi apontando para o arquivo de certificados de CA combinados que seus pacotes de distribuição linux e mantêm ordenadamente para você. No debian, esse arquivo é /etc/ssl/cert/ca-certificates.crt , provavelmente é o mesmo para você.

global
    ca-base /etc/ssl/cert # debian
frontend f1
    use_backend b1
backend b1
    server s1 something.com:443 ssl verify required ca-file ca-certificates.crt
    
por 24.01.2017 / 04:48
0

Acho que você interpreta mal o significado do ca-file .

A CA é usada para autorizar clientes , não seus próprios servidores de back-end.

O haproxy não faz conexões SSL com seus back-ends (que eu saiba) - não há handshakes e nenhum certificado para o HAproxy para validar.

O arquivo CA é necessário se você ou seu cliente configurar uma PKI para permitir conexões SSL seguras somente de clientes confiáveis. Você (ou o cliente) irá gerar o certificado de CA e usá-lo para assinar certificados de clientes.

Mesmo no caso raro em que várias CAs são necessárias para o mesmo serviço, parece ser possível empacotá-las em um arquivo PEM.

    
por 22.08.2014 / 01:44

Tags