
Así que planeo tener un ELB con paso SSL a servidores que ejecuten haproxy o nginx.
Alojaré potencialmente miles de certificados let-encrypt.
¿Nginx o haproxy son mejores para manejar miles de certificados SSL? ¿O básicamente no hay ninguna diferencia a este respecto?
Quiero terminal SSL en haproxy o nginx, y con tantos archivos de certificados, etc. Quiero tener una idea de si uno será mejor manejando tantos certificados o no.
Respuesta1
Según elDocumentación del equilibrador de carga elástico, Classic Load Balancers permite un único certificado por escucha, con hasta 100 escuchas (en diferentes puertos).
Balanceadores de carga de aplicacionespor otro lado, tiene un límite de 25 certificados por balanceador, aunque puedes utilizarlos todos con el mismo oyente.
Yo diría que su único enfoque viable para una cantidad tan grande de certificados será implementar sus instancias EC2 detrás de un Network Load Balancer, que funciona en una capa de red inferior y delega la negociación SSL completamente en las instancias backend.
Si su carga de trabajo está orientada a HTTP, diría que Nginx mejorará el trato que HAProxy. Si tiene la intención de utilizar otros protocolos como proxy, HAproxy es su mejor opción.
Respuesta2
Ambos son geniales. Yo usaría nginx personalmente ya que no estás ejecutando múltiples back-end desde esa perspectiva (según tengo entendido), por lo que no necesitas haproxy en ese lado de las cosas.
Solo tenga configurado nginx con ssl y proxy pass :)
Respuesta3
Creo que cargar miles de certificados es más fácil con HAProxy. Todo lo que necesita hacer es colocar sus certificados en un único directorio y HAProxy cargará todos los certificados con eldirectiva crt.
Entonces una configuración mínima para la descarga de SSL sería:
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
HAProxy utilizará el certificado correcto según el nombre de host SNI proporcionado por el cliente (que actualmente essoportadopor la mayoría de los navegadores modernos).
Cargar varios certificados SSL aquí es solo una cuestión de consumo de memoria. HAProxy debe tener un archivo PEM que contenga tanto los certificados requeridos como las claves privadas asociadas. Entonces, si el archivo PEM promedio tiene alrededor de 5K (clave rsa 2048), cargar millones de ellos le costará alrededor de 5 GB de memoria.
Ahora bien, mientras HAProxy asigna certificados por oyente, creo que NGINX asigna certificados por "nombre de servidor", por lo que necesitará tantos bloques de servidor como dominios tenga. Si está utilizando miles de ellos, probablemente tendrá que escribir esto.