ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

VestaCP + icecast2 редирект

 

10
Esmertec @Esmertec
Здравствуйте!
Вопрос следующий имеется веб сервер на vestacp с ssl (192.168.1.4), и отдельно сервер icecast2 (192.168.1.5) без ssl, реально ли сделать редирект трафика через vestacp на сервер с iscecast? Находил инфу, но на сколько я понял в ней icecast2 стоял на одном пк с vestacp.
Заранее спасибо за ответ!

Для чего это нужно, хочу перевести icecast на https, знаю что можно установить пакет icecast2 с ssl, но поддомен не понимает где находится сервер с icecast2 и при создании сертификата крошит ошибками, якобы имя неправильное, т.к. по сути на том же внешнем ip находится и vestacp...

Отредактировано Esmertec - 05.02.2021
419
gyurgin_ @gyurgin_
Ну тут надо понимать что vesta это панель управления, а работают там nginx или apache2. Не редирект, но прокси сделать можно, да вот только смысл, лучше icecast свою работу сделает только icecast. Ощущение что Вы не все расскзали, может нужна статистика от этой панели, или вещание на 80 порту... А так все просто и тут вариантов вагон, можно например подсунуть серверу icecast SSL от vesta, прокатит... Нужна в общем конкретика, что как и почему, какой лично Ваш уровень - опыт администрирования, конкретно системы на которых все это крутится.

10
Esmertec @Esmertec
gyurgin_ пишет:

Ощущение что Вы не все расскзали

Суть в следующем, хост у меня собственный соответственно внешный IP один и присвоен через A запись на основной домен, на котором крутится веста. На весте поднят ссл и редирект с 80 порта на 443, соответственно по доменному имени + порту не попасть в вебморду айскаста заходит по ip+порт). теперь самый прикол, веста у меня в локалке 192.168.1.4, айскаст на отдельной вдс 192.168.1.5. При попытке получить ссл на айскаст он выдает что ключ не соответствует, что логично, т.к. редирект кидает его на весту. Что я хочу в итоге вообще получить основной сайт на мойдомен.ру, айскаст на поддомене stream.мойдомен.ру. Как бы логично, что у меня есть уже ссл на основном домене, но каким образом его перенести с весты на айскаст, плохо представляю, и еще хуже представляю каким образом он будет обновляться на айскасте? (П.С. на весте он обновляется автоматически)

gyurgin_ пишет:

какой лично Ваш уровень - опыт администрирования, конкретно системы на которых все это крутится.

уровень выше пользовательского)) как хобби разворачиваю серваки на разных ос, веста у меня работает на centos7, айскаст на debian 10

Отредактировано Esmertec - 06.02.2021
10
Esmertec @Esmertec
В общем, что я сейчас имею.
icecast2 скаченный с Xiph, собранный icecast.pem из существующих сертификатов текущего домена, права на файл кинул 766, при запуске пакета пишет якобы нет файла сертификата
root@V-ICECAST:~# cat /var/log/icecast2/error.log
[2021-02-08 12:43:38] INFO main/main Icecast 2.4.4 server started
[2021-02-08 12:43:38] INFO connection/get_ssl_certificate No SSL capability
[2021-02-08 12:43:38] INFO yp/yp_update_thread YP update thread started

файл icecast.pem лежит по пути /usr/share/icecast2/icecast.pem
в файле конфига icecast изменил параметры:
<listen-socket>
<port>8001</port>
<ssl>1</ssl>
</listen-socket>
<ssl-certificate>/usr/local/icecast/icecast.pem</ssl-certificate>

419
gyurgin_ @gyurgin_
Esmertec пишет:

В общем, что я сейчас имею.
icecast2 скаченный с Xiph, собранный icecast.pem из существующих сертификатов текущего домена, права на файл кинул 766, при запуске пакета пишет якобы нет файла сертификата
root@V-ICECAST:~# cat /var/log/icecast2/error.log
[2021-02-08 12:43:38] INFO main/main Icecast 2.4.4 server started
[2021-02-08 12:43:38] INFO connection/get_ssl_certificate No SSL capability
[2021-02-08 12:43:38] INFO yp/yp_update_thread YP update thread started

файл icecast.pem лежит по пути /usr/share/icecast2/icecast.pem
в файле конфига icecast изменил параметры:
<listen-socket>
<port>8001</port>
<ssl>1</ssl>
</listen-socket>
<ssl-certificate>/usr/local/icecast/icecast.pem</ssl-certificate>

Ну логично, Вы же пишете что сертификат в /usr/share/icecast2/icecast.pem, а в конфиге /usr/local/icecast/icecast.pem

Отредактировано gyurgin_ - 08.02.2021
419
gyurgin_ @gyurgin_
А вобще рекомендую, icecast KH, не нужно будет выделять отдельный порт для https, не нужно будет клеить сертификат, можно сделать вот так: <ssl-certificate>/etc/letsencrypt/live/.../fullchain.pem</ssl-certificate>
<ssl-private-key>/etc/letsencrypt/live/.../privkey.pem</ssl-private-key>

Еще можно попробовать в <hostname></hostname> записать свой субдомен для icecast, добавить 80 и 443 порты, ну или как минимум 80-й и попробовать получить сертификат через вебрут iceast сервера (надеюсь понятно что на другом сервере никакой связи с субдоменом), у меня на одном из серверов ну просто по-другому никак нельзя было и оказалось - все работает отлично.

10
Esmertec @Esmertec
gyurgin_ пишет:

файл icecast.pem лежит по пути /usr/share/icecast2/icecast.pem
в файле конфига icecast изменил параметры

Это я так на форум сюда криво накопировал в конфигах все нормально было, косяк был в том, что icecast2 ставился из стандартного репозитория (не из xiph, хз почему, репо и ключи были в ос). В общем установил и оно заработало на тсп 8001 порту по https, используя сертификат от основного домена. Я так понял его в ручную при таком раскладе копировать каждый раз придется.

10
Esmertec @Esmertec
gyurgin_ пишет:

А вобще рекомендую, icecast KH, не нужно будет выделять отдельный порт для https, не нужно будет клеить сертификат, можно сделать вот так
<ssl-certificate>/etc/letsencrypt/live/.../fullchain.pem</ssl-certificate>
<ssl-private-key>/etc/letsencrypt/live/.../privkey.pem</ssl-private-key>


Этот вариант прокатит если у меня vesta и icecast на разных vds?

10
Esmertec @Esmertec
gyurgin_ пишет:

Еще можно попробовать в <hostname></hostname> записать свой субдомен для icecast, добавить 80 и 443 порты, ну или как минимум 80-й и попробовать получить сертификат через вебрут iceast сервера (надеюсь понятно что на другом сервере никакой связи с субдоменом), у меня на одном из серверов ну просто по-другому никак нельзя было и оказалось - все работает отлично.

хм.. у меня сабдомен добавлен только на стороне регистратора домена, т.е. веста о нем по сути ни чего не знает, но что странно если сейчас по нему переходить, он кидает на http основного сайта. В общем нужно пробовать, позже напишу, что получилось!

419
gyurgin_ @gyurgin_
На пальцах - если серверы в равном праве проброшены, то на весте отключаем и все получится на сервере с аскастом, и еще раз - не тупим, ставим KH

10
Esmertec @Esmertec
В общем решил все же реально попробовать KH сборку, собрал пак установил, и что-то до меня дошло, что скорей всего так оно не заведется. Из-за того, что домен и сабдомен ссылаются на 1 внешний IP, т.е. в весте прописан основной домен, но т.к. саб прописан на единственный внешний ip так же будет ссылаться на весту, хоть я и не прописывал этот саб домен в алиасах веба. Проблема 2 при запуске двух вебморд смотрящию через 80 и 443 порт случайно не будут забивать порт друг у друга, еще не совсем понял как присвоить айскасту сабдомен в директиве <hostname>сабдомен</hostname> прописал, но по нему все равно попадаю на весту, в локалке по 192.168.1.5 (без номера порта) веб айскаста открывается без проблем. На сколько я знаю домен сам по себе можно привязать дав имя в hostname домена вдсу т.е. веста у меня называется доменным именем, но по сути и айскаст прописан как сабдомен (127.0.1.1 V-ICECAST2.stream.мой_домен V-ICECAST2). В общем я пока тут застрял...

Отредактировано Esmertec - 09.02.2021
419
gyurgin_ @gyurgin_
Как вариант гасим весту, получаем сертификат, включаем весту, а еще проще на одном компе все исполнить.
Зачем два? Если даже сделаем прокси - тот, что с вестой на себя все примет. Другой вопрос если раскидали по портам, но я сомневаюсь сильно что у Вас там слушателей будет столько что стоит это исполнять.

419
gyurgin_ @gyurgin_
Да и vesta это то что снаружи, внутри я так понимаю apache, не лучший выбор.

10
Esmertec @Esmertec
gyurgin_ пишет:

Как вариант гасим весту, получаем сертификат, включаем весту, а еще проще на одном компе все исполнить.
Зачем два? Если даже сделаем прокси - тот, что с вестой на себя все примет. Другой вопрос если раскидали по портам, но я сомневаюсь сильно что у Вас там слушателей будет столько что стоит это исполнять.

ну да, сейчас все прикидываю так и выходит, что скорей всего придется все на одной вдс делать... Мне этого не хотелось т.к. веста - мертвый проект, с каждым днем валится какой-нибудь модуль))) Вопрос времени только когда это все в конец умерт, и надо будет что-то делать, при чем глобально с переходом на новую ОС, т.к. RHEL так же угробили CentOS на котором у меня все и работает xD Либо редиректить трафик как я изначально хотел сделать, но опять же не понятно на сколько это целесообразно... дилема в общем
Так, т.е. если айскаст будет на одной вдс с вебом, то будет достаточно прописать сабдомен в <hostname></hostname> конфигах айскаста и можно будет заходить в вебморду айскаста без указания порта?

gyurgin_ пишет:

Да и vesta это то что снаружи, внутри я так понимаю apache, не лучший выбор.

Веб у меня на nginx работает

419
gyurgin_ @gyurgin_
Ну раз nginx то чего ж проще, прокси сделайте, там на субдомен чето вроде location / {
proxy_pass **********
proxy_buffering off;
chunked_transfer_encoding off;
}

419
gyurgin_ @gyurgin_
Ну и обход пришейте для letsencrypt location /.well-known {
root /var/www/html;
}

419
gyurgin_ @gyurgin_
Еще раз - это не есть хорошо, но если слушателей не тысячи то сгодится.

10
Esmertec @Esmertec
В общем продолжаю ковырять icecast2)) перенес сайт с vestacp на hestiacp, заодно сменил ос с centos7 на debain10. Поставил на эту же виртуалку icecast2 с Xiph (пока не KH), перекинул сертификаты, опять так же временно, с основного домена, по 8001 порту работает, в <hostname></hostname> прописал свой сабдомен (разумеется сама панель о это сабдомене ни чего не знает). Проблема в том, что если я меняю порт icecast на 443, она валится с ошибкой:
фев 21 16:18:51 мой_домен systemd[1]: Starting LSB: Starts the icecast audio streaming server daemon...
фев 21 16:18:51 мой_домен icecast2[56282]: Starting icecast2: Starting icecast2
фев 21 16:18:51 мой_домен icecast2[56282]: Detaching from the console
фев 21 16:18:51 мой_домен icecast2[56282]: icecast2.
фев 21 16:18:51 мой_домен systemd[1]: Started LSB: Starts the icecast audio streaming server daemon.
фев 21 16:18:51 мой_домен icecast2[56282]: [2021-02-21 16:18:51] EROR connection/connection_setup_sockets Could not create listener socket on port 443
фев 21 16:18:51 мой_домен icecast2[56282]: [2021-02-21 16:18:51] EROR connection/connection_setup_sockets No listening sockets established
фев 21 16:18:51 мой_домен icecast2[56282]: Starting icecast2
фев 21 16:18:51 мой_домен icecast2[56282]: Detaching from the console
фев 21 16:18:51 мой_домен icecast2[56282]: Server startup failed. Exiting


хост и айскаст находятся на одной вдс с ип 192.168.1.4, порты туда прокинуты, понятно, что они между собой конфликтуют, вопрос в том, как заставить ее работать через сабдомен без добавления номера порта?

Отредактировано Esmertec - 21.02.2021
10
Esmertec @Esmertec
В общем сделал следующим образом: прокинул 8000 и 8001 порт на хост с hestiacp для icacast2, плюнул на сабдомен, на страницу статуса можно попасть по ********** Трансляцию в асйскаст кидаю с радиобосс по порту 8000 (т.е. по http), с другой стороны с айскаста можно слушать поток по http 8000 и https 8001, хз на сколько это правильно и не колхозно =D Единственный косяк - непарвильно генерируется ссылка при скачивании плейлиста по ссылке .M3U, а именно берется порт 8001 и пытается прокинуться по http, естественно так не работает. С .XSPF все отлично, и при копировании ссылки на стрим тоже все отлично!