Прикручиваем ssl к IceCast2

Все началось с того, что в Хроме перестали работать не шифрованные потоки на шифрованных сайтах. Пришлось прикручивать ssl к потоку и переходить на https. Предупреждаю сразу, для разбирающегося человека все ниженаписанное, скорее всего, проблемы не представляет. Я чайник в этих вопросах, так что, подробностей как это все работает я не знаю. Но оно работает.

1. Включаем поддержку https в настройках IceCast:

1.1. Добавляем секцию listen-socket в файле icecast.xml

<listen-socket>
<port>8001</port>
<ssl>1</ssl>
</listen-socket>

Порт выбираем по вкусу, не принципиально. <ssl>1</ssl> включает на этот порт ssl. При использовании фаервола, не забыть открыть этот порт. А то уже проходили этот прикол.

1.2 Добавляем путь к сертификату в секцию путей paths

<ssl-certificate>/полный/путь/к/сертификату/newcertificate.pem</ssl-certificate>

Если сертификат уже на месте и правильный, перезапускаем Icecast

 /etc/init.d/icecast2 restart

Должно заработать. Если сертификата еще нет, колдуем дальше.

2. Получаем любой сертификат, по вкусу и деньгам. Можно бесплатный. Если сертификат уже есть, переходим к п.2.1. Если хочется бесплатный от letsencrypt, то к п.2.2

2.1 Собираем pem-файл.

В блокноте копируем содержимое файлов crt и key. Опционально между ними запихиваем промежуточные сертификаты. У меня сертификат от Sectigo без промежуточных Фаерфокс не понял. Должен получиться следующий вид:

-----BEGIN CERTIFICATE---— (сам сертификат)
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----(закрытый ключ)
-----END RSA PRIVATE KEY-----

Сохраняем, отправляем по указанному в Айскасте адресу. Перезапускаем, профит. Если не завелось, смотрим логи Айскаста. Он там что-нибудь да скажет по этому поводу.

2.2 Добываем сертификат от letsencrypt. У меня этим занимается Vesta, но можно и любыми любимыми способами. А вот дальше начинается шаманизм. В душе не ебзнаю почему, но штатный pem файл Айскасту не нравится и работать с ним он отказывается. Хотя, по внешнему виду, они одинаковые. Потому собираем свой.

2.2.1 Находим, где хранятся полученные от  letsencrypt файлы сертификатов. В Весте на Дебиане это /home/user/conf/web.

2.2.2 Запиливаем свой pem файл

cat /полный/путь/к/сертификату/certificate.crt /полный/путь/к/сертификату/certificate.key > /полный/путь/к/сертификату/newcertificate.pem

Тестируем перезапуском Айскаста, должно завестись.

2.2.3 Так как сертификат от letsencrypt каждые 3 месяца будет обновляться, закидываем в крон обновление:

Открываем

crontab -e

В конец файла дописываем задание

1 3 * * * cat /полный/путь/к/сертификату/certificate.crt /полный/путь/к/сертификату/certificate.key > /полный/путь/к/сертификату/newcertificate.pem

Я поставил время срабатывания чуть позже срабатывания обновлялки letsencrypt. В теории все должно работать. Посмотрим через 3 месяца как все пройдет.

Закладка Постоянная ссылка.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

6 + 8 =