Установка Сервера Icecast2 С Поддержкой Ssl Для Трансляции По Протоколу Https

Постановка задачи.

Аудиотрансляция из локальной сети организации осуществляется через сайт с установленным бесплатным SSL-сертификатом от Let`s Encrypt. Однако при посещении страницы сайта в интернет-браузере появляется предупреждение о наличии смешанного контента, поскольку трансляция осуществляется по незащищенному протоколу http. Смешанный контент необходимо исключить.

Для этого было решено организовать аудиотрансляцию по защищенному протоколу https с использованием Icecast2 и IceS2. Результатом долгих поисков решения этой проблемы стала установка сервера Icecast2 с поддержкой SSL с использованием бесплатного сертификата от Let`s Encrypt. Несмотря на то, что разработчики сервера Icecast2 заявляют о поддержке SSL, компилировать сервер необходимо из исходного кода.

Здесь Описана процедура компиляции и установки сервера Icecast2 с использованием сертификата OpenSSL. Однако на данный момент браузеры жалуются на сертификаты, созданные с помощью openssl. Поэтому вместо сертификата OpenSSL мы используем бесплатный сертификат от Let`s Encrypt, сгенерированный для доменного имени, привязанного к внешнему IP-адресу, с которого осуществляется трансляция сети.

Все описанные ниже операции выполнялись на дистрибутиве Linux Mint. Итак, сначала обновляем систему и устанавливаем Icecast2 самым обычным способом, чтобы сразу его удалить.

Это необходимо для того, чтобы вам было проще настроить сервер Icecast2. Удалить Icecast2:

  
  
  
  
  
  
  
  
  
  
  
  
  
   

sudo apt remove icecast2

Убедитесь, что в системе присутствуют файлы конфигурации Icecast2 (необязательно):

ls -l /etc/init.d/ /etc/ | grep icecast

Установите инструменты для сборки Icecast2 из исходников:

sudo apt install git gcc build-essential automake autoconf libtool checkinstall

Удовлетворяем зависимости для последующей компиляции сервера Icecast2:

sudo apt install libcurl4-openssl-dev libxslt1-dev libxml2-dev libogg-dev libvorbis-dev libflac-dev libtheora-dev libssl-dev libspeex-dev

Создаем каталог для хранения временных исходных файлов:

mkdir src cd src

Давайте клонируем последнюю версию Icecast2:

git clone --recursive https://git.xiph.org/icecast-server.git

Создайте скрипт конфигурации:

cd icecast-server; .

/autogen.sh

Настраиваем исходный код для поддержки SSL:

.

/configure --with-curl --with-openssl

Убедитесь, что в конфигурации присутствует поддержка SSL (наличие lssl):

grep lssl config.status

Компиляция:

make

Установите Icecast2:

sudo checkinstall

При выполнении команды утилита checkinstall попросит нас добавить описание пакета.

Также обязательно укажите версию пакета, иначе команда выдаст ошибку «версия пакета не начинается с цифры».

Далее создайте файлы access.log и error.log (если в системе уже установлен Icecast2, то можно использовать существующие):

sudo mkdir /var/log/icecast2 cd /var/log/icecast2 sudo touch access.log sudo touch error.log

Размещаем SSL-сертификат от Let`s Encrypt, переименованный в Icecast.pem, в одну директорию с файлами access.log и error.log и указываем права на директорию и файлы в ней:

sudo chown -R icecast2:icecast /var/log/icecast2 cd /var/log/icecast2 sudo chmod -R 777 *

Редактируем файл Icecast.xml из каталога /usr/local/etc/ (возможно, можно использовать существующий файл), исправляя пути к каталогам с файлами access.log и error.log, а также файлом Icecast. сертификат пэм.

(Для создания последнего необходимо скопировать содержимое файлов fullchain.pem и privkey.pem из каталога /etc/letsencrypt/live/domain_name, открыв их текстовым редактором, в один файл и сохранить его под именем Icecast.pem.) Необходимо убедиться, что в файле Icecast.xml есть два порта: один для http-соединения (8000), другой для безопасного https-соединения (8443).

Строки, указывающие путь к SSL-сертификату и порт https, необходимо раскомментировать.

В файле может быть tls вместо ssl — разницы я не увидел.

Следует уточнить, что через http-порт 8000 происходит соединение с IceS2 или аналогичным приложением, которое считывает аудиоданные и передает их на сервер Icecast2. Если его нет, вся эта конструкция работать не будет. Эта ошибка очень часто возникает в Интернете.

Запустим сервер Icecast2:

/usr/local/bin/icecast -c /usr/local/etc/icecast.xml

Смотрим файл error.log и убеждаемся, что Icecast2 увидел и съел наш сертификат. Открываем в интернет-браузере порты 8000 и 8443 и еще раз убеждаемся, что все работает. Настраиваем автоматический запуск Icecast2 при загрузке операционной системы через службу «Настройки» — «Автозагрузка», прописав туда команду запуска из предыдущего пункта.

Здесь было объявлено о решении этой проблемы с помощью SSL-сертификата от Let`s Encrypt без компиляции Icecast2 из исходников.

Однако у меня это не сработало.

Теги: #Настройка Linux #Давайте зашифруем #SSL #icecast2 #ices2

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.