Cómo Instalar Centovacast con soporte SSL para Icecast

por | Jul 14, 2019 | Tutorial | 31 Comentarios

Icecast es un servicio de streaming multimedia, diseñado para transmitir audio para los tipos más comunes de archivos de audio. Esta guía te mostrará cómo configurar Icecast con soporte ssl en CentOS 7  de 64-bit.

En esta guía se asume que  tienes instalado CentOS 7, con una IP estática asignada.

Prerequisitos

Librerías

Para que icecast funcione correctamente en centovacast necesita de los paquetes: epel-release, libxslt-devel, curl-devel, libvorbis-devel , libtheora-devel, speex-devel, openssl, openssl-devel, libxml2, libxml2-devel. Aunque la mayoría se instalan automaticamente junto con icecast mediante el instalador de centovacast, openssl-devel no lo hace, y sin esta librería no podremos lograr que la transmisión de audio se realice por ssl.

Por esta razón recomiendo tener todas esas librerias listas antes de la instalación de centovacast. 

Puedes instalarlas todas con los comandos: 

yum -y install epel-release curl-devel libxslt-devel libvorbis-devel libtheora-devel 

yum -y install openssl openssl-devel libxml2 libxml2-devel speex-devel

Instalación de servidor de base de datos

Centovacast necesita previo a su intalación un servidor de base de datos, en las especificaciones de centova nos dice que puede usar un servidor MySQL v5 o superior ó MariaDB 10 o superior, en esta instalación usaré MariaDB 10.4.

Lo primero que tenemos que hacer es añadir el repositorio de mariaDB, para esto tenemos que ingresar el comando: 

vi /etc/yum.repos.d/mariadb.repo

Luego nos dirigimos a la página » https://downloads.mariadb.org/mariadb/repositories » y buscamos la version de sistema operativo que necesitamos, en este caso es CentOS de 64-bit

Repositorio MariaDB para Instalar Centovacast

Copiamos el código que nos da, en mi caso es: 

[mariadb] name = MariaDB

baseurl = http://yum.mariadb.org/10.4/centos7-amd64

gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck=1

Y lo insertamos dentro del archivo que creamos anteriormente.

Una vez añadido el repositorio, instalamos mariaDB con el comando:

yum install -y mariadb-server

Cuando haya terminado la instalación, iniciamos el servidor de la base de datos, y también lo habilitamos para que se inicie automáticamente en el siguiente arranque, de este modo:

systemctl start mariadb

systemctl enable mariadb

Ahora hay que configurar la seguridad de mariaDB con el comando:

mysql_secure_installation

Nos va a pedir ingresar la contraseña, pero al no estar configurada lo unico que tenemos que hacer es darle ENTER. Lo siguiente que nos va a preguntar es si queremos cambiar la contraseña, a lo que le damos yes (Y), he ingresamos la nueva contraseña.

Luego que este cambiada la contraseña nos va ha hacer unas preguntas para configurar la seguridad

Remove anonymous users? [Y/n]

Disallow root login remotely? [Y/n]

Remove test database and access to it? [Y/n]

Reload privilege tables now? [Y/n]

todas le damos yes (Y),  y con eso queda lista la instalación de mariaDB.

Podemos verificar que todo este correcto al verificar la version del servidor con el comando:

mysql --version

Creación de base de datos

Después de instalar mariaDB tenemos que crear la base de datos para centovacast, por lo que ingresamos al servidor con el comando:

mysql -u root -p

nos pedirá la contraseña que configuramos en la instalación de mariaDB.

Una vez dentro creamos la base de datos con el comando (reemplazamos la parte que dice «nombre_de_base_de_datos» con el nombre que queramos) :  

CREATE DATABASE nombre_de_base_de_datos;

Podemos verificar que la base de datos se creo correctamente con el comando:  

show databases;

Salimos con con el comando:

exit

Instalación de Centovacast

Para instalar Centovacast lo que hacemos es usar los comandos (reemplazamos LICENSEKEY con nuestra actual licencia de centova): 

wget -O install.sh install.centova.com/LICENSEKEY
chmod a+x ./install.sh

Elegimos los componentes que queremos instalar junto con centova

ShoutCast DNAS v2: –shoutcast2
ShoutCast DNAS v1: –shoutcast1
IceCast: –icecast
Liquidsoap: –liquidsoap
ices-cc: –icescc
sctrans v2: –sctrans2

Si deseamos instalar centovacast con todos los complementos usamos el comando:

./install.sh –liquidsoap –icecast –shoutcast2 –shoutcast1 –sctrans2 –icescc

Si necesitas mas información sobre la instalación de centovacast puedes visitar:

 https://centova.com/doc/cast/installation_manual/04_full_installation

Configuración del Firewall

En el sistema CentOS 7 el firewall por defecto es firewalld, y las reglas que debemos ingresar para que funcione centovacast son:

firewall-cmd –permanent –add-port=2199/tcp

firewall-cmd –permanent –add-port=2197/tcp

firewall-cmd –permanent –add-port=21/tcp

firewall-cmd –permanent –add-port=80/tcp

firewall-cmd –permanent –add-port=8000-10000/tcp

Recargamos para que la configuracion tenga efecto con el comando:

firewall-cmd –reload

Si necesitas mas información sobre la configuración del firewall puedes visitar:

https://centova.com/en/faq/cast3/information/configuring_a_firewall_for_centova_cast

Configuración de certificado SSL con Let’s Encrypt

Para habilitar el uso de SSL tenemos que hacer una configuración dentro del archivo cc-panel.conf, usamos el siguiente comando para ingresar al archivo:

vi /usr/local/centovacast/etc/cc-panel.conf

Buscamos la linea «listen 2199 default ssl;» y en la linea siguiente añadimos:

listen 80;

Guardamos, salimos del editor y reiniciamos centovacast con el comando:

service centovacast restart

Una vez hecha la configuración, simplemente solicitamos e instalamos un certificado SSL para nuestro dominio con el comando (reemplazamos «midominio.com» con el dominio para el que queremos el certificado):

/usr/local/centovacast/sbin/setssl letsencrypt midominio.com

Si todo esta correcto desde letsencrypt nos dirá que aceptemos los terminos del servicio corriendo el comando: 

/usr/local/centovacast/sbin/setssl letsencrypt midominio.com –accept

Una vez este instalado el certificado, simplemente reiniciamos centovacast:

service centovacast restart

Si necesitas mas información sobre la instalación del certificado puedes visitar:

https://centova.com/en/faq/cast3/information/lets_encrypt

Configuraciones finales

Si todo a salido de manera correcta en este punto ya podriamos ingresar a nuestro panel de control de centovacast en » https://midominio.com:2199 » y veriamos la siguente pantalla:

Configuración Inicial al Instalar Centovacast

Al darle a continuar lo último que tendriamos que hacer es crear el usuario administrador e ingresar las credenciales de la base de datos:

Ingreso de datos de administrador en Centovacast

En la parte de Administrator Account colocariamos el correo del administrador y una contraseña. En la parte de MySQL Database los datos a ingresar serán:

Database name: el nombre de la base de datos que creamos en MariaDB

MySQL username: root

MySQL password: la contraseña que configuramos para MariaDB

MySQL hostname: localhost

Una vez los datos esten ingresados le damos a Next y con eso tendríamos listo nuestro panel de Centovacast.

La siguiente vez que ingresemos a » https://midominio.com:2199 » nos mostrará la siguiente pantalla:

Ingreso a Panel Centovacast

Y para ingresar colocariamos el username «admin» y la contraseña que creamos para el administrador

Configuración de SSL para streaming de icecast

Con la instalación del certificado SSL, el panel de control de centovacast va a funcionar de manera segura, sin embargo las transmisiones de audio que salen por los diferentes puertos no lo serán. Para solucionar esto realizamos la siguiente configuración.

Dentro de CentOS ingresamos al directorio ssl con el siguiente comando:

cd /usr/local/centovacast/etc/ssl

Y dentro de este directorio crearemos un archivo .pem que contenga la llave privada y publica del certificado ssl, en este caso yo creare el archivo «icecast.pem» y le agregaré las llaves con los siguientes comandos:

cat /usr/local/centovacast/etc/ssl/certificate.pem > icecast.pem

cat /usr/local/centovacast/etc/ssl/private.key >> icecast.pem

Con esto ya queda configurado todo dentro de CentOS.

Solo nos restaría ir al panel de centovacast y escoger el cliente de icecast al que queremos habilitar el SSL (como ejemplo para este tutorial he creado un cliente de prueba):

Configuración SSL para Icecast en Centovacast

Y vamos a configurar la cuenta del cliente desde nuestra sección, ingresando con el boton «Login to this account»:

SSL para Icecast en Centovacast Paso 2

Una vez dentro nos vamos a «Configuration -> Settings», y le damos click al boton»Raw configuration»:

SSL para Icecast en Centovacast Raw Configuration

Entramos a la configuración de IceCast y buscamos la parte que dice » <port>#puerto_salida</port> » (el puerto de salida varía, para este ejemplo es el 8000):

Modificación de puertos para SSL en Icecast

Y vamos a reemplazar esa línea con lo siguiente: 

<listen-socket>

  <port>#puerto_salida</port>

</listen-socket>

<listen-socket>  

  <port>#puerto_salida_ssl</port>   

  <ssl>1</ssl>

</listen-socket>

Reemplazamos el » #puerto_salida » con el puerto que corresponde (en este ejemplo es el 8000) y » #puerto_salida_ssl » con el puerto por el que deseamos salga la transmisión segura (en este ejemplo yo escogí el 9000):

Modificación de puertos para SSL en Icecast paso2

Finalmente dentro del mismo editor buscamos » <pidfile>var/run/server.pid</pidfile> » y en la linea siguiente añadimos:

<ssl-certificate>/usr/local/centovacast/etc/ssl/icecast.pem</ssl-certificate>

Incluir dirección de certificado SSL en centovacast

Le damos a guardar y con eso estaría listo.

Si esta guía te ha servido o si tienes dudas puedes dejarmelas en los comentarios.

Puedes seguir a techinradio en cualquiera de sus redes sociales 

31 Comentarios

  1. Ariel

    Hola, muy bueno el tutorial, pero creo que no me quedo claro el tema de la configuración del ssl en el cpanel? para centova ya que comentaste que lo tenias configurado con un subdominio, crees que puedas hacer un tuto de eso??
    saludos

    Responder
    • Diego Chiluisa

      Hola Ariel, gracias por tu sugerencia, lo tomaré en cuenta para futuros tutoriales.

      Responder
  2. Sonia Armijos

    Genial Tutorial me hizo de mucha ayuda, tengo una pregunta y para configurar el SSL para Shoutcast en el Centovacast como seria?

    Responder
    • Diego Chiluisa

      Hola Sonia, me alegra que te haya servido, para shoutcast hay que hacerlo mediante proxy, puedes suscribirte al canal de youtube de TechInRadio, que proximamente sacaré un video con el procedimiento para hacerlo.

      Responder
  3. igmar

    buenas tardes. tengo icecast instalado en ubuntu 18.4 server vps sin panel de control. He instalado un ssl bajo un susbdominio y he hecho los cambio, pero no logro hacer que funcione el icecast bajo ssl

    Responder
    • Diego Chiluisa

      Hola Igmar, El procedimiento es para Centos y con centovacast, si deseas instalar un ssl en icecast puedes ir a la pagina oficial y buscar información en la documentación, te dejo el enlace https://icecast.org/docs/icecast-2.4.1/

      Responder
  4. +6281381183087

    Hello i have problem as bellow, can you help me ?

    [root@streaming media]# /usr/local/centovacast/sbin/setssl letsencrypt stream.arenastreaming.com
    Installing custom SSL certificate …
    cp: cannot stat ‘letsencrypt’: No such file or directory
    cp: cannot stat ‘stream.arenastreaming.com’: No such file or directory

    Done. Restart Centova Cast to apply these changes.

    Responder
    • Diego Chiluisa

      If you followed the procedure given by centovacast on the page: https://centova.com/en/faq/cast3/information/lets_encrypt ,it might be a problem with your centovacast installation, you can contact centovacast support they surely have more information about why this error occurs.

      Responder
  5. Everton Souza

    Como usted hacer para el renew del certificado SSL?

    Responder
    • Diego Chiluisa

      Puedes hacer una tarea en el cron, que renueve el certificado.

      Responder
      • Everton Souza

        Pero cual es el comando para dejar en la crontab or ejecutar?

        Responder
  6. Everton Souza

    Ustede sabes cual es commando para renew the certificated lets encrypt?

    Responder
    • Diego Chiluisa

      Es el mismo que se usa la primera vez que se crea el certificado

      Responder
  7. Alencar

    fiz o passo a passo certo.
    porem nao toca nada….

    Responder
    • Diego Chiluisa

      Un error comun es no instalar las librerias antes de centovacast, siempre se debe instalar las librerias antes, en especial openssl y openssl-devel que son las que permiten el ssl.

      Responder
  8. Alencar

    E acredito que mesmo que funcione, deve dar erro de estatística.
    Pois o IP do ouvinte para aparecer sempre o do servidor do Centova, pois será um Proxy.
    Tirando assim todas as referencias do ouvintes conectados nas radios.

    Responder
    • Diego Chiluisa

      Este tutorial no utiliza proxy para lograr transmitir con ssl, en Icecast el ssl es nativo.

      Responder
  9. Alencar

    Refiz tudo novamente e agora funciona 100%.
    O unico problema agora é fazer meu player tocar o audio.
    Uso o player https://radioplayer.luna-universe.com/shortcode
    Mas ele apenas toca o audio, mas nao mostra o nome da musica, nem a capa do artista e nem o analisador de audio em tempo real.

    Estou usando o Azuracast pelo Shoutcast e la funciona em SSL juntamente com este player.

    Mas queria voltar para o Centova por ser mais profissional, porém acredito que a Centova está chegando ao fim, pois a anos que eles nao atualizam mais o sistema deles e nem se quer se preocuparam em resolver essa questão do SSL com Shoutcast.

    Uma pena, pois um painel tão bom.

    Responder
    • Diego Chiluisa

      El audio y la metadata son cosas que el reproductor procesa, en tu caso tendrías que preguntarles a ellos. Respecto a centova, tienes razón, lastimosamente su software cada vez esta mas desactualizado.

      Responder
  10. Felipe Martínez

    Tengo instalado centova en una instancia ec2 de aws, no he podido descargar el certificado ssl de letsencrypt porque tengo la version v1de Acme y no lo permite, no he podido encontrar documentación que me ayude a actualizarla; por lo tanto compré un certificado en GoDaddy, el cual funcionó para centova pero no para icecast, seguí su tutorial pero remplace las certificados de letsencrypt por los de GoDaddy y tampoco, podría ayudarme por favor ?

    Responder
    • Diego Chiluisa

      Claro escribeme al chat y lo conversamos.

      Responder
  11. silvestro

    Hola Diego
    muy buena tu explicacion, yo efectue paso a paso tu procedimiento de principio a fin y si abre en servidor seguro la pagina en lets encript pero el audio me dice que no es seguro, que podria hacer para reparar el problema?
    Gracias por tu ayuda
    saludos

    Responder
    • Diego Chiluisa

      Si seguiste todos los pasos debería funcionar toda transmisión de icecast, si no funciona puede haber algun problema con el certificado.

      Responder
  12. silvestro

    Hola Diego
    Gracias por responder, que deberia hacer volver a generar el certificado?
    saludos

    Responder
    • Diego Chiluisa

      la verdad son muchas las posibles causas para que falle, puedes generarlo nuevamente pero si no funciona puedes escribirme por chat que es mas facil comunicarnos de esa manera.

      Responder
      • silvestro

        Hola Diego
        Ok te escribo por chat
        saludos

        Responder
  13. Orlando Jiménez

    Excelente tutorial, me funcionó pero hay que seguir todos los pasos y la instalación por obligación se tiene que hacer desde cero si tiene centova instalado ya no deja instalar certificado a icecast

    Responder
    • Diego Chiluisa

      Tienes razón, este procedimiento solo funciona en una instalación desde cero, si necesitas instalar un ssl en un panel que ya esta funcionando hay que hacerlo de otra manera.

      Responder
  14. edgar

    saludos. realizando la instalacion con el siguiten comando sudo ./install.sh –liquidsoap –icecast, error de instalacion liquidsoap

    liquidsoap did not install successfully and will not be available for use
    to try again, run /usr/local/centovacast/sbin/update -add liquidsoap

    Responder
    • NISSIRESEAUX

      OKEY

      Responder
  15. carlos

    Buenas, ya no se puede instalar Icecast2 desde Centova y tienes que instalartelo por tu cuenta, puedes actualizar los pasos? estoy mirando en tutoriales y no veo ninguno que funcione para Centos 8 Stream.

    Responder

Dejar una respuesta a Alencar Cancelar la respuesta

Tu dirección de correo electrónico no será publicada.

Revisa Estas Publicaciones Relacionadas

Cómo conectar Listen2myradio a BUTT

Cómo conectar Listen2myradio a BUTT

Listen2myradio es uno de los servicios de streaming más conocidos y en este videotutorial muestro como enlazar el servicio de streaming de listen2myradio al encoder butt para poder transmitir online.

Pin It on Pinterest

Share This