Esta guía te muestra cómo instalar un certificado SSL/TLS en Pound, el ligero proxy inverso HTTP/HTTPS. Cubre la parte que más confunde a los operadores: construir el archivo PEM combinado único que Pound espera, en el orden correcto, y luego escribir un bloque ListenHTTPS funcional que desactive los protocolos obsoletos, apunte Pound hacia un backend, y supere una verificación de configuración antes de reiniciar el servicio.
Una nota rápida sobre a qué versión de Pound se dirige esta guía. El proyecto original de Apsis Pound se descontinuó en septiembre de 2022. El desarrollo activo se trasladó al fork mantenido por Sergey Poznyakoff en github.com/graygnuorg/pound, que ahora es el upstream canónico y la versión empaquetada por las distribuciones actuales de Linux. Las directivas a continuación corresponden a la serie moderna 4.x.
Genera el CSR para Pound
Si ya generaste tu CSR y tienes en tus manos los archivos del certificado emitido, ve directamente a Instalar el certificado SSL en Pound.
Antes de que una Autoridad de Certificación pueda emitir tu certificado, debes enviar un CSR (Certificate Signing Request): un pequeño bloque de texto que contiene los datos de tu dominio y una clave pública, junto con una clave privada que permanece en el servidor. Tienes dos opciones:
- Genera el CSR automáticamente con nuestro generador de CSR. La herramienta devuelve tanto el CSR como la clave privada correspondiente, que luego debes trasladar al servidor.
- Genera el CSR directamente en el servidor con OpenSSL siguiendo nuestro tutorial sobre cómo generar un CSR en Pound. La clave privada permanece en el servidor.
Al solicitar el certificado, pega el bloque completo del CSR, incluidas las líneas —–BEGIN CERTIFICATE REQUEST—– y —–END CERTIFICATE REQUEST—–. Si quieres confirmar el contenido del CSR antes de enviarlo, pégalo en nuestro decodificador de CSR. Guarda el archivo de la clave privada correspondiente (normalmente tudominio.key) en un lugar seguro y legible solo por root; la necesitarás durante la instalación.
Instala el certificado SSL en Pound
Una vez que la CA haya emitido el certificado, normalmente recibirás:
- Tu certificado principal (de servidor), generalmente un archivo .crt o .pem con el nombre de tu dominio.
- Uno o más certificados intermedios, ya sea como archivos separados o agrupados en un solo archivo .ca-bundle.
- La clave privada (un archivo .key) que se generó junto con tu CSR.
Pound espera un único archivo PEM que contenga el certificado, la cadena intermedia y la clave privada sin cifrar. El manual de graygnuorg es explícito sobre el orden: certificado, luego los certificados intermedios (si los hay), y luego la clave privada, en ese orden. Omitir la cadena es el error de instalación más común: el certificado se ve bien en un navegador de escritorio, pero falla en Android, en iOS y en clientes de línea de comandos.
Paso 1: Construye el archivo PEM combinado
Esta guía asume que los archivos del certificado están en /etc/pound/. Ajusta las rutas según tu configuración. Concatena los tres archivos en un solo archivo PEM. El patrón de redirección con tee que se muestra abajo ejecuta la redirección con privilegios de root, lo cual es necesario porque /etc/pound/ normalmente solo puede ser escrito por root (un simple sudo cat … > /etc/pound/… fallaría, ya que la shell abre el archivo de salida como tu usuario normal antes de que sudo se ejecute):
cat your_domain.crt intermediate.crt your_domain.key | sudo tee /etc/pound/your_domain.pem > /dev/null
Si la CA proporcionó los certificados intermedios como un único archivo .ca-bundle, usa ese en su lugar:
cat your_domain.crt your_domain.ca-bundle your_domain.key | sudo tee /etc/pound/your_domain.pem > /dev/null
Sustituye los nombres de archivo por los tuyos. La clave privada dentro del archivo combinado debe estar sin cifrar, ya que Pound se inicia de forma no interactiva y no puede pedir una frase de contraseña. Restringe el acceso al archivo resultante para que solo root pueda leerlo:
sudo chown root:root /etc/pound/your_domain.pem
sudo chmod 600 /etc/pound/your_domain.pem
Paso 2: Edita pound.cfg
Abre el archivo de configuración de Pound (normalmente /etc/pound/pound.cfg en Debian y Ubuntu, o /etc/pound.cfg en otras distribuciones) y añade un bloque ListenHTTPS que apunte al archivo PEM combinado. Un bloque moderno mínimo se ve así:
ListenHTTPS
Address 0.0.0.0
Port 443
Cert "/etc/pound/your_domain.pem"
# Modern TLS only: disables SSLv2, SSLv3, TLSv1.0 and TLSv1.1,
# leaving TLSv1.2 and TLSv1.3 enabled.
Disable TLSv1_1
Ciphers "ECDHE+AESGCM:ECDHE+CHACHA20:!aNULL:!MD5:!DSS"
Service
Backend
Address 127.0.0.1
Port 8080
End
End
End
Algunas notas sobre las directivas anteriores:
- Cert proporciona el archivo PEM combinado que construiste en el Paso 1. El manual aclara que Cert debe preceder a todas las demás directivas específicas de SSL dentro del listener, así que manténlo en la parte superior del bloque.
- Disable desactiva el protocolo nombrado y todos los protocolos anteriores a él. Por lo tanto, Disable TLSv1_1 desactiva SSLv2, SSLv3, TLSv1.0 y TLSv1.1, dejando activos TLSv1.2 y TLSv1.3, lo cual coincide con las recomendaciones actuales de la industria.
- Ciphers establece la lista de cifrados de OpenSSL (usada para TLS 1.2; TLS 1.3 negocia sus propios conjuntos de cifrado). La lista anterior restringe el proxy a conjuntos ECDHE modernos con AEAD; si necesitas soportar clientes más antiguos, sustitúyela por el perfil «intermediate» de Mozilla en ssl-config.mozilla.org.
- Service / Backend es donde Pound reenvía el tráfico descifrado. El ejemplo lo reenvía a un único backend en la interfaz loopback (puerto 8080); sustituye la dirección y el puerto por los que use tu aplicación, y añade más bloques Backend si quieres que Pound reparta la carga.
Si también quieres que Pound acepte HTTP sin cifrar y lo redirija (normalmente solo para redirigir a HTTPS, ver Paso 4), añade un bloque ListenHTTP separado en el mismo archivo.
Paso 3: Verifica la configuración y reinicia Pound
Antes de recargar el servicio, valida el archivo de configuración para que un error de tipeo no deje el proxy fuera de línea. Pound tiene un modo de verificación incorporado:
sudo pound -c -f /etc/pound/pound.cfg
Sale con estado 0 y no imprime nada si tiene éxito, o con estado 1 junto con un mensaje de error indicando el archivo y la línea si falla. Añade -v si quieres una confirmación explícita de «configuración OK». Cuando la verificación pase, reinicia Pound para que aplique el nuevo listener:
sudo systemctl restart pound
En sistemas sin systemd, usa el script de init antiguo en su lugar:
sudo /etc/init.d/pound restart
Confirma que el servicio se está ejecutando y escuchando en el puerto 443:
sudo systemctl status pound
sudo ss -tlnp | grep ':443'
Paso 4 (recomendado): Redirige HTTP a HTTPS
Para asegurarte de que los visitantes que escriben el dominio sin más terminen en la URL segura, añade un listener HTTP plano que responda a cada solicitud con una redirección permanente hacia la versión HTTPS de la misma ruta:
ListenHTTP
Address 0.0.0.0
Port 80
Service
Redirect 301 "https://example.com$1"
End
End
Sustituye example.com por tu propio dominio. La referencia inversa $1 conserva la ruta original de la solicitud. Ejecuta de nuevo sudo pound -c -f /etc/pound/pound.cfg, y luego reinicia el servicio.
Prueba la instalación de SSL
Abre tu sitio a través de https:// en un navegador y verifica que el candado esté cerrado y que el certificado coincida con tu dominio. Luego ejecuta un análisis más profundo con nuestro SSL Checker para obtener un informe instantáneo sobre el certificado, la cadena, y los protocolos y cifrados que Pound está ofreciendo. Un resultado limpio ahí significa que los clientes en todas las plataformas principales, incluidos móviles y clientes de API, confiarán en el certificado.
Preguntas frecuentes
El proyecto original de Apsis fue abandonado en 2022. El fork mantenido activamente es graygnuorg/pound de Sergey Poznyakoff, actualmente en la serie 4.x, y es el que las principales distribuciones de Linux empaquetan como pound. Si estás usando algo de la antigua línea 2.x, planea migrar a una versión actual: las directivas de configuración de esta guía asumen el fork moderno.
Según el manual de Pound: primero el certificado del servidor, luego los certificados intermedios (si los hay), y después la clave privada, todos codificados en PEM, en ese único archivo. La clave privada no debe estar protegida con frase de contraseña, porque Pound se inicia como un daemon y no tiene forma de pedirla.
Usa la directiva Disable dentro del bloque ListenHTTPS. El Disable de Pound desactiva el protocolo nombrado y todos los protocolos anteriores a él, así que Disable TLSv1_1 desactiva SSLv2, SSLv3, TLSv1.0 y TLSv1.1, dejando solo TLSv1.2 y TLSv1.3. Esa es la configuración recomendada para nuevas implementaciones.
Sí. Pound admite SNI, por lo que puedes declarar múltiples declaraciones Cert dentro del mismo listener ListenHTTPS (o hacer que Cert apunte a un directorio de archivos PEM). Pound recorre los certificados en orden y sirve el primero cuyo Common Name o SAN coincida con el nombre de host solicitado, así que enumera los certificados más específicos (nombres de host) antes de los wildcards.
Ejecuta sudo pound -c -f /etc/pound/pound.cfg. El indicador -c comprueba el archivo de configuración en busca de errores de sintaxis y termina sin iniciar el proxy; el estado de salida 0 significa OK, el estado 1 significa que hay un error (el mensaje indica el archivo y la línea). Añade -v para un mensaje explícito de éxito.
A partir del 15 de marzo de 2026, los certificados SSL/TLS de confianza pública tienen un límite de 200 días, y el CA/Browser Forum ha programado más reducciones (a 100 días en 2027 y 47 días en 2029). Planea repetir la instalación anterior bien antes de cada vencimiento, o automatiza las renovaciones con ACME.
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


