ELB com passagem de SSL para nginx ou haproxy. Qual é adequado para lidar com mais certs?

1

Por isso, planejo ter um ELB com passagem SSL para servidores que executam haproxy ou nginx.

Eu hospedarei potencialmente milhares de certificados de criptografia.

O nginx ou o haproxy são melhores para lidar com milhares de certificados de ssl? Ou não há basicamente nenhuma diferença a esse respeito?

Eu quero o terminal SSL no haproxy ou no nginx, e com tantos arquivos certificados etc. Eu quero uma idéia se um deles for melhor em lidar com muitos certs ou não.

    
por cool breeze 19.03.2018 / 21:41

3 respostas

2

De acordo com a documentação do Elastic Load Balancer , os Balanceadores de carga clássicos permitem um certificado único por ouvinte, com até 100 ouvintes (em portas diferentes).

Balanceadores de carga de aplicativos , por outro lado, têm um limite de 25 certificados por balanceador, embora você possa usar todos eles com o mesmo ouvinte.

Eu diria que sua única abordagem viável para uma quantidade tão grande de certificados será implantar suas instâncias do EC2 por trás de um balanceador de carga de rede, que funciona em uma camada de rede inferior e delega completamente a negociação SSL nas instâncias de back-end.

Se sua carga de trabalho for orientada para HTTP, eu diria que o Nginx tornará o acordo melhor que o HAProxy. Se você pretende fazer proxy de outros protocolos, o HAproxy é sua melhor escolha.

    
por 20.04.2018 / 00:49
1

Ambos são ótimos. Eu usaria o nginx pessoalmente, já que você não está executando vários back-ends nessa perspectiva (pelo que entendi), então você não precisa do haproxy desse lado das coisas.

Basta ter configuração nginx com SSL e proxy pass:)

    
por 17.04.2018 / 01:34
1

Eu acho que carregar milhares de certs é mais fácil de fazer com o HAProxy. Tudo o que você precisa fazer é colocar seus certificados em um único diretório e o HAProxy carregará todos os certificados com o diretiva crt .

Portanto, uma configuração mínima para o descarregamento de SSL seria:

listen ssl_offload
   mode http
   bind IP:443 ssl crt <path-to-ssl-directory>
   timeout     client  30s
   timeout     server  30s
   timeout     connect 5s
   server srv1 IP:80 check 

O HAProxy usará o certificado correto com base no nome do host SNI fornecido pelo cliente (que é atualmente suportado por navegadores mais modernos).

Carregar vários certificados SSL é apenas uma questão de consumo de memória aqui. O HAProxy precisa ter um arquivo PEM contendo os certificados necessários e qualquer chaves privadas associadas. Portanto, se o arquivo PEM médio estiver em torno de 5K (2048 rsa key), carregar milhões deles custará cerca de 5 GB de memória.

Agora, enquanto o HAProxy atribui certificados por ouvinte, acho que o NGINX atribui certificados por "nome do servidor", portanto, você precisará de tantos blocos de servidores quantos domínios tiver. Se você estiver usando milhares deles, provavelmente terá que fazer o script disso.

    
por 20.04.2018 / 12:29