Ir al contenido
Castreon
Supervisión y servidor

HTTPS directo en Castreon y fuentes con huella

Actualizado el 13 oct. 2026

Castreon sirve el panel, la API y la entrega (HLS, DASH, HTTP-TS) también por HTTPS, directamente, sin nginx ni otro proxy delante. Todo lo que sale del servidor va cifrado con TLS: quien esté en el camino solo ve tráfico cifrado hacia una dirección, ni las direcciones de los canales ni el contenido.

Entre dos servidores Castreon — por ejemplo, una estación que recibe los canales y un servidor que los distribuye después — la conexión también puede verificarse: el servidor que toma el canal solo acepta el certificado de su estación, por la huella (pin). Nadie puede ponerse en medio.

Disponible desde Castreon 1.5.1, en todos los planes.

Activar HTTPS

  1. Abre Ajustes → HTTPS.
  2. Marca HTTPS activado.
  3. Puerto HTTPS — 33443 por defecto, distinto del puerto HTTP. Ábrelo en el firewall (TCP).
  4. Elige el Certificado (ver más abajo) y haz clic en Guardar.

HTTPS arranca al instante, sin reiniciar el servicio. HTTP sigue igual, en su puerto: las apps y los reproductores que lo usan no notan nada.

Arriba a la derecha de la sección ves el estado: escuchando en 33443, desactivado o no arranca — en ese caso, el mensaje de debajo explica por qué (por ejemplo, el puerto lo usa otro programa).

Las conexiones son TLS 1.3 (TLS 1.2 para los clientes más antiguos) y HTTP/2, y se mantienen abiertas entre peticiones: un reproductor o un servidor que toma HLS no abre una conexión TLS nueva para cada segmento.

El certificado

Hay tres tipos de certificado. En resumen:

Cuándo usarlo Huella
Certificado propio del servidor los enlaces entre tus servidores, sin dominio sí — no cambia nunca
Let's Encrypt automático todo lo público: el panel en el navegador, el reproductor web, los espectadores, la CDN no — la clave cambia en cada renovación
Tus propios archivos (certbot, otra autoridad) ya tienes certificados hechos de otra forma no

Certificado propio del servidor

Castreon crea por sí solo el certificado y la clave (ECDSA P-256). La clave se queda en el servidor, en la carpeta de datos (tls/server.key), con acceso solo para el servicio.

  • Nombres y direcciones del certificado — el dominio o la IP pública del servidor, uno por línea. Se proponen a partir de Dominio público.
  • El certificado es válido un año y se renueva solo 30 días antes de caducar, con la misma clave — así que la huella sigue siendo la misma. Los servidores que toman de aquí no hay que cambiarlos nunca.
  • Clave nueva crea una clave nueva (huella nueva) y cierra las conexiones abiertas. Úsala solo si la clave antigua puede estar comprometida: los servidores que toman de aquí necesitarán la huella nueva.

El certificado propio es adecuado entre tus servidores. Un navegador no lo reconoce y muestra una advertencia — para el panel abierto en el navegador o para el reproductor web en un sitio, usa un certificado emitido por una autoridad (más abajo).

Let's Encrypt automático

Castreon solicita por sí solo el certificado a Let's Encrypt y lo renueva por sí solo — sin certbot, sin instalar nada más. El certificado lo reconocen todos los navegadores, reproductores, televisores y apps.

  1. Elige Let's Encrypt automático.
  2. Dominios del servidor — por ejemplo tv.exemplu.ro, uno por línea. Cada uno debe apuntar a este servidor en el DNS (registro A / AAAA). Aquí no se pueden poner direcciones IP.
  3. Correo electrónico (opcional) — la autoridad solo escribe si hay algo importante con el certificado.
  4. Marca la aceptación de las condiciones de Let's Encrypt y haz clic en Guardar.

Para emitir el certificado, Let's Encrypt comprueba desde internet que el dominio es tuyo. Uno de estos puertos debe llegar al servidor:

  • el puerto 443 → el puerto HTTPS de Castreon (por ejemplo 33443), o
  • el puerto 80 → el puerto HTTP de Castreon (por ejemplo 33400).

Lo más sencillo: una redirección en el router o en el firewall. Castreon prueba primero el puerto 443 y después el puerto 80.

En la sección ves el estado: solicitando el certificado, certificado emitido (con la fecha de renovación) o el motivo por el que no ha funcionado — por ejemplo, el dominio no apunta al servidor, o ninguno de los puertos llega a Castreon. Castreon lo reintenta por sí solo, con pausas cada vez más largas (Let's Encrypt limita los intentos fallidos); cuando lo hayas arreglado, haz clic en Intentar ahora.

El certificado se renueva solo cuando le queda un tercio de su validez (30 días en un certificado de 90), sin reiniciar.

Las conexiones por IP siguen recibiendo el certificado propio del servidor. Su huella aparece en la sección, en Para los enlaces por IP entre tus servidores, y no cambia — los enlaces con huella entre servidores también funcionan en modo automático.

Para pruebas sin límites, elige en Autoridad el entorno de pruebas de Let's Encrypt (sus certificados no los reconocen los navegadores). También puedes usar otra autoridad ACME, por ejemplo una interna de la empresa.

Tus propios archivos (por ejemplo certbot)

Si ya tienes un certificado de una autoridad:

  • Certificado (fullchain) — por ejemplo /etc/letsencrypt/live/tv.exemplu.ro/fullchain.pem;
  • Clave privada — por ejemplo /etc/letsencrypt/live/tv.exemplu.ro/privkey.pem.

El servicio Castreon debe poder leerlos. Castreon revisa los archivos cada minuto y los recarga por sí solo cuando cambian (después de certbot renew), sin reiniciar. Si el archivo nuevo está dañado, sigue en uso el certificado anterior y Ajustes → HTTPS indica qué falla.

Fuente HTTPS con huella (servidor Castreon → servidor Castreon)

La huella solo se usa con el certificado propio del servidor. Un certificado Let's Encrypt (o de otra autoridad) recibe una clave nueva en cada renovación, así que su huella cambiaría cada pocas semanas. Para un certificado así, deja la huella vacía: el servidor que toma el canal lo verifica de forma normal, según la autoridad.

En el servidor que envía (la estación):

  1. Activa HTTPS con el Certificado propio del servidor.
  2. Copia la Huella (pin) de Ajustes → HTTPS — tiene la forma sha256//….

En el servidor que toma el canal:

  1. Abre el canal → Editar → fuente de tipo URL.
  2. Dirección: la dirección HTTPS del canal, por ejemplo https://statie.exemplu.ro:33443/live/canal-1/index.m3u8?token=… (la sección muestra la dirección exacta, con el token).
  3. Justo debajo de la dirección aparece Huella del certificado (pin): pega la huella copiada y haz clic en Guardar.

Con huella, la conexión ya no la hace ffmpeg, sino Castreon:

  • se acepta solo el certificado con la clave de esa huella — cualquier otro certificado (otro servidor, alguien en medio) se rechaza, aunque lo haya emitido una autoridad;
  • cada canal tiene sus propias conexiones, abiertas entre segmentos: en una línea saturada, un canal lento no frena a los demás;
  • si algo no funciona, el motivo aparece en el registro del canal, por ejemplo: el certificado no tiene la huella esperada, nadie escucha en el puerto, el puerto responde sin TLS (es el puerto HTTP).

Sin huella, una fuente https:// funciona como antes: el certificado se verifica según las autoridades conocidas (Let's Encrypt y las demás).

La huella también se puede comprobar desde la línea de comandos: curl --pinnedpubkey 'sha256//…' -k https://statie.exemplu.ro:33443/healthz responde ok solo con la huella correcta.

Todas las fuentes de un servidor por HTTPS, en un solo paso

En un servidor que toma muchos canales de una o varias estaciones no hace falta editar canal por canal. En Ajustes → Fuentes de otros servidores Castreon aparece una fila por cada servidor del que toman los canales (direcciones /live/…), con el número de canales y su estado: HTTP, sin cifrar, HTTPS con huella, HTTPS (certificado de una autoridad) o mixto.

En la fila de una estación:

  1. Puerto HTTPS del servidor de origen — 33443 por defecto.
  2. Huella del servidor de origen — copiada de Ajustes → HTTPS de la estación (certificado propio). Vacía solo si la estación tiene un certificado de una autoridad para el nombre de la dirección.
  3. Pasar a HTTPS → confirma.

Castreon comprueba primero la conexión en un canal, exactamente como la harán los canales — la huella, el token, las direcciones permitidas, el puerto. Si no funciona, explica por qué y no cambia nada. Si funciona, pasa todas las fuentes de esa estación a https://, con el puerto y la huella, y los canales en marcha se reinician uno a uno, con un segundo y medio de separación — no se caen todos a la vez.

  • Tras una Clave nueva en la estación: pega la huella nueva y haz clic en Actualizar las fuentes.
  • Volver a HTTP devuelve las fuentes a HTTP, con el puerto anterior.
  • Cada estación tiene su propia huella; una fuente de reserva de otra estación conserva la suya.
  • Cada cambio aparece en Auditoría, canal por canal.

Qué puerto usar entre servidores

Cualquier puerto sirve — la seguridad viene de TLS, la huella, el token y las direcciones permitidas, no del número de puerto. Nuestra recomendación:

  • 443 hacia fuera, redirigido en el router al puerto HTTPS de Castreon (por ejemplo 33443): el enlace se ve exactamente como el tráfico de cualquier sitio HTTPS y pasa por cualquier red. En el servidor que toma el canal, escribe el puerto 443.
  • Si la línea no permite conexiones entrantes por el 443, quédate en 33443 — igual de seguro.
  • Restringe el acceso: en la estación, las Direcciones permitidas de /live (Ajustes → Acceso a los flujos) solo con las IP de los servidores que toman de allí, y en el router o el firewall la misma regla en el puerto HTTPS.

Por qué HTTPS y no un túnel

HTTPS directo en Castreon es el estándar que usan las CDN y los orígenes de streaming: cifrado TLS 1.3 (con claves nuevas en cada conexión), verificación del servidor por certificado o huella, sin programas adicionales entre servidores. Un túnel (VPN) también cifra, pero es un servicio más que mantener, y si se detiene, detiene todo el tráfico.

Preguntas frecuentes

¿HTTPS ralentiza la entrega? No se nota: el cifrado AES en los procesadores actuales supera varios gigabits por segundo por núcleo, y las conexiones abiertas evitan la negociación TLS en cada segmento.

¿Puedo usar HTTP y HTTPS a la vez? Sí. HTTP sigue en su puerto; pasa a HTTPS lo que quieras, cuando quieras.

¿Qué pasa al renovar el certificado? Nada visible: las conexiones nuevas reciben el certificado nuevo y las abiertas continúan. Con el certificado propio, la huella sigue siendo la misma.

¿Puedo fijar la huella de un certificado Let's Encrypt? No es recomendable: su clave cambia al renovarse, y el enlace se detendría. La huella es para el certificado propio; un certificado de una autoridad se verifica sin huella.

¿Las restricciones de acceso se aplican también por HTTPS? Sí — el token y las Direcciones permitidas de /live (Ajustes → Acceso a los flujos) son las mismas por HTTP y por HTTPS.

Privacidad

Cookies y almacenamiento local

Las cookies estrictamente necesarias están siempre activas. Las estadísticas y el marketing usan servicios de Google y solo se activan si los aceptas; hasta entonces no se envía nada a Google. Puedes retirar tu consentimiento aquí en cualquier momento.

Estrictamente necesarias

Sin ellas no funcionan el inicio de sesión, los formularios ni el idioma elegido. No requieren consentimiento (§ 25, apartado 2, n.º 2 TDDDG).

Siempre activas
Nombre Finalidad Duración Tipo
castreon-session Mantiene la sesión: inicio de sesión e idioma elegido 2 horas, renovada en cada visita Cookie
XSRF-TOKEN Protege los formularios contra solicitudes falsificadas 2 horas, renovada en cada visita Cookie
remember_web_… Solo si marcas «Recordarme» al iniciar sesión Hasta cerrar sesión, máx. 400 días Cookie
__cf_bm Cloudflare: distingue visitantes de bots, solo cuando se verifica el tráfico 30 minutos Cookie · Cloudflare
castreon:consent Recuerda tu elección de cookies 12 meses Almacenamiento local
theme Apariencia de la cuenta de cliente: clara, oscura o del sistema Hasta que la cambies Almacenamiento local

Estadísticas

Google Analytics 4 (Google Ireland Ltd.): qué páginas se visitan, de dónde llegan las visitas y con qué tipo de dispositivo — con identificadores seudónimos, sin guardar la dirección IP. Nos ayuda a mejorar el sitio.

Nombre Finalidad Duración Tipo
_ga Google Analytics: reconoce al visitante (identificador seudónimo) 13 meses Cookie · Google Analytics
_ga_VHWQRPHPEF Google Analytics: mantiene el estado de la visita 13 meses Cookie · Google Analytics

Marketing

Google Ads (Google Ireland Ltd.): mide si las visitas desde anuncios de Google llevan a una prueba o a un plan y permite mostrar anuncios de Castreon en otros sitios (remarketing).

Nombre Finalidad Duración Tipo
_gcl_au, _gcl_aw Google Ads: vincula la visita con el clic en el anuncio (conversiones) 90 días Cookie · Google Ads
IDE, test_cookie Google Ads: remarketing y medición de anuncios, en dominios de Google (doubleclick.net) Hasta 13 meses Cookie · Google (tercero)