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.