HTTPS diretto in Castreon e sorgenti con impronta
Aggiornato il 13 ott 2026Castreon serve il pannello, l'API e la distribuzione (HLS, DASH, HTTP-TS) anche in HTTPS, direttamente, senza nginx o altri proxy davanti. Tutto ciò che parte dal server è cifrato con TLS: chi sta lungo il percorso vede solo traffico cifrato verso un indirizzo, non gli indirizzi dei canali né il contenuto.
Tra due server Castreon — ad esempio una stazione che riceve i canali e un server che li distribuisce oltre — il collegamento può essere anche verificato: il server che preleva il canale accetta solo il certificato della propria stazione, in base all'impronta (pin). Nessuno può mettersi in mezzo.
Disponibile da Castreon 1.5.1, in tutti i piani.
Attivare HTTPS
- Apri Impostazioni → HTTPS.
- Spunta HTTPS attivo.
- Porta HTTPS — predefinita
33443, diversa dalla porta HTTP. Aprila nel firewall (TCP). - Scegli il Certificato (vedi sotto) e clicca Salva.
HTTPS parte subito, senza riavviare il servizio. HTTP resta com'è, sulla sua porta: le app e i player che lo usano non si accorgono di nulla.
In alto a destra nella sezione vedi lo stato: in ascolto su 33443, disattivato o non parte — in quel caso il messaggio sotto spiega perché (ad esempio la porta è usata da un altro programma).
Le connessioni sono in TLS 1.3 (TLS 1.2 per i client più vecchi) e HTTP/2, tenute aperte tra una richiesta e l'altra: un player o un server che preleva HLS non apre una nuova connessione TLS per ogni segmento.
Il certificato
Esistono tre tipi di certificato. In breve:
| Quando usarlo | Impronta | |
|---|---|---|
| Certificato proprio del server | i collegamenti tra i tuoi server, senza dominio | sì — non cambia mai |
| Let's Encrypt automatico | tutto ciò che è pubblico: il pannello nel browser, il player web, gli spettatori, la CDN | no — la chiave cambia a ogni rinnovo |
| I tuoi file (certbot, un'altra autorità) | hai già certificati creati in altro modo | no |
Certificato proprio del server
Castreon crea da solo il certificato e la chiave (ECDSA P-256). La chiave resta sul server, nella cartella dei dati (tls/server.key), accessibile solo al servizio.
- Nomi e indirizzi nel certificato — il dominio o l'IP pubblico del server, uno per riga. Vengono proposti a partire da Dominio pubblico.
- Il certificato vale un anno e si rinnova da solo 30 giorni prima della scadenza, con la stessa chiave — quindi l'impronta resta la stessa. I server che prelevano da qui non vanno mai modificati.
- Nuova chiave crea una nuova chiave (nuova impronta) e chiude le connessioni aperte. Usala solo se la vecchia chiave potrebbe essere compromessa: i server che prelevano da qui avranno bisogno della nuova impronta.
Il certificato proprio è adatto tra i tuoi server. Un browser non lo conosce e mostra un avviso — per il pannello aperto nel browser o per il player web su un sito, usa un certificato emesso da un'autorità (vedi sotto).
Let's Encrypt automatico
Castreon richiede da solo il certificato a Let's Encrypt e lo rinnova da solo — senza certbot, senza installare nient'altro. Il certificato è riconosciuto da tutti i browser, i player, i televisori e le app.
- Scegli Let's Encrypt automatico.
- Domini del server — ad esempio
tv.exemplu.ro, uno per riga. Ognuno deve puntare a questo server nel DNS (record A / AAAA). Qui non si possono inserire indirizzi IP. - Indirizzo email (facoltativo) — l'autorità scrive solo se c'è qualcosa di importante riguardo al certificato.
- Spunta l'accettazione delle condizioni di Let's Encrypt e clicca Salva.
Per emettere il certificato, Let's Encrypt verifica da internet che il dominio sia tuo. Una di queste porte deve raggiungere il server:
- la porta 443 → la porta HTTPS di Castreon (ad esempio
33443), oppure - la porta 80 → la porta HTTP di Castreon (ad esempio
33400).
La soluzione più semplice: un inoltro nel router o nel firewall. Castreon prova prima la porta 443, poi la porta 80.
Nella sezione vedi lo stato: richiedo il certificato, certificato emesso (con la data del rinnovo) o il motivo per cui non ha funzionato — ad esempio il dominio non punta al server, oppure nessuna delle porte raggiunge Castreon. Castreon riprova da solo, con pause sempre più lunghe (Let's Encrypt limita i tentativi falliti); dopo aver risolto, clicca Riprova ora.
Il certificato si rinnova da solo quando gli resta un terzo della validità (30 giorni per un certificato di 90), senza riavvio.
Le connessioni via IP continuano a ricevere il certificato proprio del server. La sua impronta compare nella sezione, in Per i collegamenti via IP tra i tuoi server, e non cambia — i collegamenti con impronta tra i server funzionano anche in modalità automatica.
Per tentativi senza limiti scegli in Autorità l'ambiente di test di Let's Encrypt (i suoi certificati non sono riconosciuti dai browser). Puoi usare anche un'altra autorità ACME, ad esempio una interna all'azienda.
I tuoi file (ad esempio certbot)
Se hai già un certificato di un'autorità:
- Certificato (fullchain) — ad esempio
/etc/letsencrypt/live/tv.exemplu.ro/fullchain.pem; - Chiave privata — ad esempio
/etc/letsencrypt/live/tv.exemplu.ro/privkey.pem.
Il servizio Castreon deve poterli leggere. Castreon controlla i file ogni minuto e li ricarica da solo quando cambiano (dopo certbot renew), senza riavvio. Se il nuovo file è danneggiato, resta in uso il certificato precedente e Impostazioni → HTTPS indica cosa non va.
Sorgente HTTPS con impronta (server Castreon → server Castreon)
L'impronta si usa solo con il certificato proprio del server. Un certificato Let's Encrypt (o di un'altra autorità) riceve una nuova chiave a ogni rinnovo, quindi la sua impronta cambierebbe ogni poche settimane. Per un certificato del genere lascia vuota l'impronta: il server che preleva lo verifica normalmente, in base all'autorità.
Sul server che invia (la stazione):
- Attiva HTTPS con il Certificato proprio del server.
- Copia l'Impronta (pin) da Impostazioni → HTTPS — ha la forma
sha256//….
Sul server che preleva il canale:
- Apri il canale → Modifica → sorgente di tipo URL.
- Indirizzo: quello HTTPS del canale, ad esempio
https://statie.exemplu.ro:33443/live/canal-1/index.m3u8?token=…(la sezione mostra l'indirizzo esatto, con il token). - Subito sotto l'indirizzo compare Impronta del certificato (pin): incolla l'impronta copiata e clicca Salva.
Con l'impronta, la connessione non la fa più ffmpeg, ma Castreon:
- viene accettato solo il certificato con la chiave di quell'impronta — un altro certificato (un altro server, qualcuno in mezzo) viene rifiutato, anche se emesso da un'autorità;
- ogni canale ha le sue connessioni, tenute aperte tra un segmento e l'altro: su una linea congestionata, un canale lento non rallenta gli altri;
- se qualcosa non funziona, il motivo compare nel registro del canale, ad esempio: il certificato non ha l'impronta attesa, nessuno è in ascolto sulla porta, la porta risponde senza TLS (è la porta HTTP).
Senza impronta, una sorgente https:// funziona come prima: il certificato viene verificato in base alle autorità conosciute (Let's Encrypt e le altre).
L'impronta si può verificare anche dalla riga di comando:
curl --pinnedpubkey 'sha256//…' -k https://statie.exemplu.ro:33443/healthzrispondeoksolo con l'impronta corretta.
Tutte le sorgenti di un server su HTTPS, in un solo passaggio
Su un server che preleva molti canali da una o più stazioni non serve modificare un canale alla volta. In Impostazioni → Sorgenti da altri server Castreon compare una riga per ogni server da cui prelevano i canali (indirizzi /live/…), con il numero di canali e il loro stato: HTTP, non cifrato, HTTPS con impronta, HTTPS (certificato di un'autorità) o misto.
Sulla riga di una stazione:
- Porta HTTPS del server sorgente — predefinita
33443. - Impronta del server sorgente — copiata da Impostazioni → HTTPS della stazione (certificato proprio). Vuota solo se la stazione ha un certificato di un'autorità per il nome presente nell'indirizzo.
- Passa a HTTPS → conferma.
Castreon verifica prima la connessione su un canale, esattamente come la faranno i canali — l'impronta, il token, gli indirizzi consentiti, la porta. Se non funziona, spiega perché e non cambia nulla. Se funziona, passa tutte le sorgenti di quella stazione a https://, con la porta e l'impronta, e i canali in funzione si riavviano uno alla volta, a un secondo e mezzo l'uno dall'altro — non cadono tutti insieme.
- Dopo una Nuova chiave sulla stazione: incolla la nuova impronta e clicca Aggiorna le sorgenti.
- Torna a HTTP riporta le sorgenti su HTTP, con la porta di prima.
- Ogni stazione ha la sua impronta; una sorgente di riserva da un'altra stazione mantiene la propria impronta.
- Ogni modifica compare in Audit, canale per canale.
Quale porta usare tra i server
Qualsiasi porta va bene — la sicurezza viene da TLS, impronta, token e indirizzi consentiti, non dal numero della porta. Il nostro consiglio:
- 443 verso l'esterno, inoltrata nel router alla porta HTTPS di Castreon (ad esempio
33443): il collegamento appare esattamente come il traffico di un qualsiasi sito HTTPS e passa attraverso qualsiasi rete. Sul server che preleva scrivi la porta443. - Se la linea non consente connessioni in entrata sulla 443, resta su
33443— altrettanto sicura. - Limita l'accesso: sulla stazione, gli Indirizzi consentiti per
/live(Impostazioni → Accesso ai flussi) solo con gli IP dei server che prelevano da lì, e nel router o nel firewall la stessa regola sulla porta HTTPS.
Perché HTTPS e non un tunnel
HTTPS diretto in Castreon è lo standard usato dalle CDN e dalle origini di streaming: cifratura TLS 1.3 (con chiavi nuove a ogni connessione), verifica del server tramite certificato o impronta, nessun programma in più tra i server. Anche un tunnel (VPN) cifra, ma è un servizio in più da mantenere, che ferma tutto il traffico se si ferma lui.
Domande frequenti
HTTPS rallenta la distribuzione? Non si nota: la cifratura AES sui processori di oggi supera diversi gigabit al secondo per core, e le connessioni tenute aperte evitano la negoziazione TLS a ogni segmento.
Posso usare sia HTTP sia HTTPS? Sì. HTTP resta sulla sua porta; sposta su HTTPS quello che vuoi, quando vuoi.
Cosa succede al rinnovo del certificato? Niente di visibile: le nuove connessioni ricevono il nuovo certificato, quelle aperte continuano. Con il certificato proprio l'impronta resta la stessa.
Posso impostare l'impronta di un certificato Let's Encrypt? Non è consigliato: la sua chiave cambia al rinnovo e il collegamento si interromperebbe. L'impronta è per il certificato proprio; un certificato di un'autorità si verifica senza impronta.
Le restrizioni di accesso valgono anche in HTTPS? Sì — il token e gli Indirizzi consentiti di /live (Impostazioni → Accesso ai flussi) sono gli stessi in HTTP e in HTTPS.