letsencrypt cfg ssl openssl centos load-balancing haproxy

ssl - cfg - haproxy mode



ConfiguraciĆ³n de Haproxy ssl-instale la raĆ­z y el certificado intermedio (2)

Después de googlear mucho, finalmente hice mi haproxy ssl para que funcione. Pero ahora tengo un problema porque la raíz y el certificado intermedio no están instalados, por lo que mi ssl no tiene barra verde.

Mi configuración haproxy

global maxconn 4096 nbproc 1 #debug daemon log 127.0.0.1 local0 defaults mode http option httplog log global timeout connect 5000ms timeout client 50000ms timeout server 50000ms frontend unsecured bind 192.168.0.1:80 timeout client 86400000 reqadd X-Forwarded-Proto:/ http default_backend www_backend frontend secured mode http bind 192.168.0.1:443 ssl crt /etc/haproxy/cert.pem reqadd X-Forwarded-Proto:/ https default_backend www_backend backend www_backend mode http balance roundrobin #cookie SERVERID insert indirect nocache #option forwardfor server server1 192.168.0.2:80 weight 1 maxconn 1024 check server server2 192.168.0.2:80 weight 1 maxconn 1024 check

192.168.0.1 es mi balanceador de carga ip. /etc/haproxy/cert.pem contiene clave privada y certificado de dominio, por ejemplo. www.dominio.com

Hay otra pregunta con la configuración ssl , que incluye bundle.crt. Cuando contacté con mi soporte de SSL, me dijeron que necesitaba instalar el certificado raíz e intermedio.

Desde la documentación de Comodo , crear un paquete es tan simple como fusionar su crt, que hice.

Pero cuando intento reconfigurar mi configuración haproxy como

bind 192.168.0.1:443 ssl crt /etc/haproxy/cert.pem ca-file /path/to/bundle.crt

Estoy recibiendo un error que no puedo usar ese parámetro de configuración en el enlace.

ps im usando la versión 1.5 dev12. Con la última versión de dev17 tuve problemas incluso al iniciar haproxy como en esta publicación


Lo siento, no estoy seguro de qué versión de haproxy es la opción USE_OPENSSL disponible ... No puedo encontrar esa opción en mi código base es V 1.4.24

Valid USE_* options are the following. Most of them are automatically set by # the TARGET, others have to be explictly specified : # USE_CTTPROXY : enable CTTPROXY on Linux (needs kernel patch). # USE_DLMALLOC : enable use of dlmalloc (see DLMALLOC_SRC) patch). # USE_EPOLL : enable epoll() on Linux 2.6. Automatic. patch). # USE_GETSOCKNAME : enable getsockname() on Linux 2.2. Automatic. patch). # USE_KQUEUE : enable kqueue() on BSD. Automatic. patch). # USE_MY_EPOLL : redefine epoll_* syscalls. Automatic. patch). # USE_NETFILTER : enable netfilter on Linux. Automatic.patch). # USE_PCRE : enable use of libpcre for regex. Recommended.patch). # USE_POLL : enable poll(). Automatic.patch). # USE_REGPARM : enable regparm optimization. Recommended on x86.patch). # USE_SEPOLL : enable speculative epoll(). Automatic.patch). # USE_STATIC_PCRE : enable static libpcre. Recommended.patch). # USE_TPROXY : enable transparent proxy. Automatic. patch). # USE_LINUX_TPROXY : enable full transparent proxy. Automatic. patch). # USE_LINUX_SPLICE : enable kernel 2.6 splicing. Automatic. patch). # USE_LIBCRYPT : enable crypted passwords using -lcrypt patch). # USE_CRYPT_H : set it if your system requires including crypt.h


Parece que necesitarás recompilar así:

make clean make / TARGET="linux26" / USE_STATIC_PCRE=1 / USE_OPENSSL=1 make install PREFIX="/opt/haproxy"

Después de eso, bind debe reconocer tu opción crt. En mi caso, utilicé:

bind 0.0.0.0:443 ssl crt /envs/production/ssl/haproxy.pem

Concatené todos los archivos ssl en 1 archivo grande en la cadena de certificado de pedido, clave privada. p.ej:

-----BEGIN MY CERTIFICATE----- -----END MY CERTIFICATE----- -----BEGIN INTERMEDIATE CERTIFICATE----- -----END INTERMEDIATE CERTIFICATE----- -----BEGIN INTERMEDIATE CERTIFICATE----- -----END INTERMEDIATE CERTIFICATE----- -----BEGIN ROOT CERTIFICATE----- -----END ROOT CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----

Reinicie y pruebe con openssl s_client -connect 127.0.0.1:443 -servername www.transloadit.com |head .

Debe devolver la información de certificado correcta.

Edición: Acabo de encontrar este tutorial a través de HackerNews: https://serversforhackers.com/c/using-ssl-certificates-with-haproxy . Pensé que sería útil agregar a medida que entra en más detalles.