Dal recente aggiornamento Chrome 80, il contenuto misto (mixed content) è andato a farsi benedire, e quindi, posto la mia soluzione.
Appurato che ricompilare icecast in SSL è una gran rottura (anche perche non accetta i certificati lets encrypt ma vuole un certificato unico e farlo ogni tre mesi non è auspicabile) possiamo gestire la cosa tramite un PROXY APACHE
Allego qua la direttiva che sto utilizzando io.
Premetto che ho installato sul server anche CERTBOT per avere ogni 3 mesi un certificato LetsEncrypt aggiornato automaticamente (sempre nella stessa posizione ovviamente).
Questa direttiva va inserita insieme alle altre difettive di apache in uso sul server e non è obbligatorio che sia sulla stessa macchina di streaming.
<VirtualHost *:443>
ServerName stream.iltuoserver.it
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPass "/""http://stream.iltuoserver.it:9004/"
ProxyPassReverse "/""stream.iltuoserver.it:9004/"
SSLCertificateFile /etc/letsencrypt/live/....nomeoscurato...../fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/.....nomeoscurato...../privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
Prima di riavviare apache è necessario abilitare ProxyPass con queste due righe di codice da eseguire in shell:
a2enmod proxy
a2enmod proxy_http
In questo caso si tratta di stesso server che esegue sia apache per il proxy, sia icecast per lo stream.
Nulla toglie di replicare la regola VirtualHost con ServerName differenti se si hanno più icecast differenti
Se siete sprovvisti di Certbot per LetsEncrypt, qua c'è una guida
certbot.eff.org/lets-encrypt/debianjessie-apache
Richiede un po' di dimestichezza in caso di problemi con il virtualenv di linux, si può seguire tranquillamente la procedura di certonly e applicare il certificato manualmente come indicato sopra
Nella speranza di evitare la calvizie a qualche collega
Matteo