Cómo configurar un certificado SSL en HAProxy

Cómo configurar un certificado SSL en HAProxy

HAProxy, un equilibrador de carga TCP/HTTP de alto rendimiento, admite la terminación SSL, lo que significa que puede gestionar las tareas de cifrado y descifrado SSL, reduciendo la carga de los servidores backend.

Este artículo te mostrará cómo configurar un certificado SSL en HAProxy, incluyendo, la generación de un código CSR (Certificate Signing Request), la obtención de un certificado SSL comercial, la combinación del cert con la clave privada y la configuración de HAProxy para utilizarlo. Así que ¡manos a la obra!


Índice

  1. Generar un código CSR para tu certificado SSL
  2. Consigue un certificado SSL comercial para HAProxy
  3. Fusionar el certificado y la clave privada
  4. Configurar el certificado SSL PEM en HAProxy

Generar un código CSR para tu certificado SSL

Antes de que la Autoridad de Certificación pueda emitir el certificado SSL, necesita que le envíes el código CSR para validar tus credenciales de contacto. El CSR es un pequeño bloque de texto codificado con detalles relevantes sobre tu sitio web y tu empresa. Debes generarlo y enviarlo durante la inscripción SSL.

He aquí cómo hacerlo:

  1. Abre un Terminal: Accede a la interfaz de línea de comandos de tu servidor.
  2. Ejecuta el comando OpenSSL: Utiliza el siguiente comando OpenSSL para generar una CSR y una clave privada. Sustituye midominio por tu nombre de dominio real.

    openssl req -new -newkey rsa:2048 -nodos -keyout midominio.key -out midominio.csr
  3. Introduce la información requerida: Se te pedirá que introduzcas datos como:
    • Nombre del país (código de 2 letras, por ejemplo, US)
    • Nombre del estado o provincia (por ejemplo, California)
    • Nombre de la localidad (por ejemplo, San José)
    • Nombre de la organización (por ejemplo, GPI Holding)
    • Nombre de la unidad organizativa (por ejemplo, TI)
    • Nombre común (por ejemplo, tudominio.com)
    • Dirección de correo electrónico
  4. Guarda el CSR y la clave privada: El comando generará dos archivos: midominio .csr (el CSR) y midominio.key (la clave privada). Guarda bien la clave privada, ya que la necesitarás más adelante.

Consigue un certificado SSL comercial para HAProxy

Todos los navegadores y sistemas operativos confían en los certificados SSL comerciales. Como resultado, tus sitios web o aplicaciones no se enfrentarán a molestos errores de conexión SSL. Para un entorno de producción, estos certificados son imprescindibles. Si utilizas HAProxy con fines de prueba, puedes generar un certificado autofirmado, pero en este artículo nos centraremos en la configuración SSL de HAProxy para entornos activos.

Para obtener un certificado SSL comercial, sigue estos pasos:

  1. Elige una Autoridad de Certificación (CA): Selecciona una CA reputada como DigiCert, Comodo o GeoTrust.
  2. Selecciona el tipo de certificado: Elige el tipo de certificado SSL que se adapte a tus necesidades, como un certificado de dominio único, comodín o multidominio (SAN).
  3. Envía la CSR: Proporciona la CSR a la CA para que pueda emitir un certificado que coincida con la clave privada de tu servidor.
  4. Compra el certificado: Obtén tu certificado SSL de un distribuidor SSL fiable como SSL Dragon para obtener el mejor precio y atención al cliente.
  5. Proceso de validación: Según el tipo de certificado, te someterás a un proceso de validación de dominio, de validación de organización o de validación ampliada.
  6. Recibe el Certificado: Tras la validación, la CA emitirá los archivos SSL archivados en una carpeta ZIP.

Fusionar el certificado y la clave privada

Una vez que recibas tu certificado SSL de la CA, tienes que combinarlo con tu clave privada para crear un único archivo que HAProxy pueda utilizar.

  1. Prepara los archivos: Asegúrate de que tienes los siguientes archivos:
    • El certificado SSL de tu dominio (por ejemplo, midominio.crt)
    • La clave privada generada anteriormente (midominio.clave)
    • Cualquier certificado intermedio proporcionado por la CA (por ejemplo, intermediate.crt). Normalmente, la CA envía los intermedios en un archivo CA Bundle.
  2. Combinar los archivos: Este comando combina el certificado, el certificado intermedio y la clave privada en un único archivo PEM.

    cat midominio.crt intermedio.crt midominio.key > /etc/haproxy/dominio.pem

Configurar el certificado SSL PEM en HAProxy

Ahora que tienes el archivo PEM, puedes configurar HAProxy para que utilice el certificado SSL.

Paso 1: Carga el Certificado PEM en el Servidor HAProxy:

Utiliza el comando scp para subir el archivo del certificado PEM al servidor HAProxy (sustituye sysadmin y haproxy_server_ip por el nombre de usuario y la dirección IP del servidor remoto, respectivamente):

scp midominio.pem sysadmin@haproxy_servidor_ip:/home/sysadmin/

Paso 2: Crear un directorio para el Certificado

Crea un directorio donde se almacenará el archivo PEM del certificado:

sudo mkdir -p /etc/ssl/midominio/
sudo cp midominio.pem /etc/ssl/midominio/

Paso 3: Editar el archivo de configuración de HAProxy

Abre el archivo de configuración de HAProxy (por defecto se encuentra en /etc/haproxy/haproxy.cfg) en un editor de texto como el Bloc de Notas.

Paso 4: Configurar la Sección Frontend

Modifica la sección frontend para activar la terminación SSL y redirigir el tráfico HTTP a HTTPS:

frontend http_frontend
mode http
bind *:80
bind *:443 ssl crt /etc/ssl/mydomain/mydomain.pem alpn h2,http/1.1
redirect scheme https code 301 if !{ ssl_fc }
default_backend http_servers

Paso 5: Añadir parámetros SSL/TLS

Para garantizar el uso de versiones SSL/TLS modernas y seguras, añade el parámetro ssl-min-ver:

bind *:443 ssl crt /etc/ssl/mydomain/mydomain.pem alpn h2,http/1.1 ssl-min-ver TLSv1.2

Esta directiva admite los protocolos HTTP/2 y HTTP/1.1 e impone una versión TLS mínima de 1.2 para las conexiones seguras.

Paso 6: Configurar la Sección Backend

Asegúrate de que tus servidores backend están correctamente definidos.

backend http_servers
mode http
balance roundrobin
server server1 :80 check
server server2 :80 check

Paso 7: Reinicia HAProxy

Aplica los cambios reiniciando el servicio HAProxy:

sudo systemctl restart haproxy

Paso 8: Prueba tu configuración SSL

Para probar tu configuración SSL de HAProxy, utiliza SSL Labs e introduce el nombre de tu dominio. La herramienta te proporcionará un informe completo sobre tu configuración SSL/TLS, incluyendo los detalles del certificado y cualquier problema potencial.


Conclusión

En resumen, aprender a configurar un certificado SSL en HAProxy es esencial para proteger tus aplicaciones web y garantizar una comunicación fiable entre clientes y servidores. Si estableces correctamente la configuración SSL de HAProxy, podrás proteger los datos confidenciales y mejorar la seguridad general. Seguir estas directrices ayuda a implementar un cifrado robusto y garantiza que tu sitio web funcione de forma segura a través de HTTPS, proporcionando una experiencia más segura a tus usuarios.

Ahorre un 10% en certificados SSL al realizar su pedido hoy mismo.

Emisión rápida, cifrado potente, 99,99% de confianza del navegador, asistencia dedicada y garantía de devolución del dinero en 25 días. Código del cupón: SAVE10

Escrito por

Redactor de contenidos experimentado especializado en Certificados SSL. Transformar temas complejos de ciberseguridad en contenido claro y atractivo. Contribuir a mejorar la seguridad digital a través de narrativas impactantes.