Cómo configurar un certificado CA SSL en HaProxy

Cómo configurar un certificado CA SSL en HaProxy

El HaProxy es un proxy inverso de alto rendimiento ampliamente utilizado, de alto rendimiento, que ofrece capacidades de equilibrio de carga y equilibrio de alta disponibilidad para aplicaciones TCP y HTTP. Por defecto, se compila con Openssl, Así apoyando Ssl Terminación, habilitando a su sitio web/pila de aplicaciones para cifrar y descifrar el tráfico entre su "servidor de entrada web" o el servidor de puerta de enlace de acceso de la aplicación y aplicaciones de clientes.

Esta guía muestra cómo configurar un CA SSL certificado en Hombuxy. Esta guía supone que ya ha recibido su certificado de la CA y está lista para instalarlo y configurarlo en un servidor haproxy.

Los archivos esperados son:

  • El certificado en sí.
  • Los certificados intermedios también se llaman paquetes o cadenas, y.
  • La raíz ca, si está disponible, y.
  • La clave privada.

Cree un archivo de certificado SSL con formación de PEM

Antes de configurar su California certificado en Haproxi, Necesitas entender eso Haproxi requiere un solo .pem Archivo que debe contener el contenido de todos los archivos anteriores, concatenado en el siguiente orden:

  • La clave privada que termina con .llave, (puede venir al comienzo o al final del archivo).
  • Seguido del certificado SSL (generalmente termina con .CRT).
  • Luego el CA-Pundle (generalmente termina con .haz), y
  • La raíz ca, si está disponible.

Para crear el .pem Archivo, muévase al directorio que tiene sus archivos de certificado e.gramo ~/Descargas, Luego ejecute el comando CAT de esta manera (reemplace los nombres de archivo en consecuencia):

Ejemplo de $ Cat.comunicarse.Key Star_example_com/Star_example_com.CRT Star_example_com/Star_example_com.CA-Bundle> Ejemplo.comunicarse.pem 

Configurar el certificado PEM SSL en HaProxy

A continuación, cargue el recién creado .pem archivo de certificado al Haproxi servidor utilizando el comando scp como se muestra (reemplace sysadmin y 192.168.10.24 con el nombre de usuario del servidor remoto y la dirección IP respectivamente):

$ SCP Ejemplo.comunicarse.PEM [correo electrónico protegido]:/home/sysadmin/ 

Luego cree un directorio donde el certificado .pem el archivo se almacenará utilizando el mkdir comandar y copiar el archivo en él:

$ sudo mkdir -p/etc/ssl/ejemplo.COM/ $ sudo CP Ejemplo.comunicarse.PEM/ETC/SSL/Ejemplo.com/ 

A continuación, abra su Haproxi Archivo de configuración y configurar el certificado en la sección del oyente frontend, utilizando los parámetros SSL y CRT: el primero habilita la terminación SSL y el último especifica la ubicación del archivo de certificado.

frontend http_frontend modo http bind *: 80 bind *: 443 ssl crt/etc/ssl/ejemplo.com/ejemplo.comunicarse.PEM ALPN H2, HTTP/1.1 esquema de redirección Código HTTPS 301 si !ssl_fc default_backend http_servers 

Ciertas versiones de SSL/TLS no se recomiendan para su uso ahora debido a las vulnerabilidades que se han descubierto en ellos. Para limitar la versión compatible de Ssl, puedes agregar el ssl-min-ver Parámetro como este:

Bind *: 443 SSL CRT/ETC/SSL/Ejemplo.com/ejemplo.comunicarse.PEM ALPN H2, HTTP/1.1 SSL-MIN-VER TLSV1.2 

Configurar haproxy para redirigir http a https

Para asegurarse de que su sitio web solo sea accesible a través de Https, Necesitas habilitar a Haproxy para redirigir todo Http tráfico de Https En caso de que un usuario intente acceder a él a través de HTTP (puerto 80).

Agregue la siguiente línea a la configuración anterior:

esquema de redirección Código HTTPS 301 si !ssl_fc o http-request esquema https a menos que ssl_fc 

Su sección frontend ahora debería verse como la de esta configuración de muestra:

frontend http_frontend modo http bind *: 80 bind *: 443 ssl crt/etc/ssl/ejemplo.com/ejemplo.comunicarse.PEM ALPN H2, HTTP/1.1 SSL-MIN-VER TLSV1.2 esquema de redirección Código HTTPS 301 si !ssl_fc default_backend http_servers backend http_servers en modo http balance opción redondebin opción httpchk head / http-resesponse set-header x-frame-options Sameorigin http-response set-header x-x-xs-procection 1; mode = block http-fresponse stat-header x-header x -Content-type-options nosniff predeterminado-servidor vers Maxconn 5000 servidor http_server1 10.2.1.55:80 

Guardar el archivo de configuración y cerrarlo.

Luego verifique si su sintaxis es correcta usando el siguiente comando:

$ sudo haproxy -f/etc/haproxy/haproxy.CFG -C 
Verifique la configuración de HaProxy

Si el archivo de configuración es válido, continúe y vuelva a cargar el servicio haproxy para recoger los cambios recientes en la configuración, utilizando el comando SystemCTL:

$ sudo systemctl recargar haproxy 

Por último, pero no menos importante, pruebe toda la configuración accediendo a su sitio web desde un navegador web y asegúrese de que el certificado esté cargando bien y el navegador indica que el "La conexión es segura"!

Consulte el sitio web de HaProxy

Eso es todo! Esperamos que esta guía le haya ayudado a configurar un certificado SSL en el software de equilibrio de carga de Haproxy. Si encuentra algún error, háganos saber a través del formulario de comentarios a continuación. Estaremos encantados de ayudarte.