Icecast 2 и SSL
Я пытаюсь заставить работать icecast 2 и мой letsencrypt SSL без удачи. Пока что я сделал, это построил icecast 2 с поддержкой openssl, и я также запустил его, но он всегда выдает следующую ошибку в файле журнала.
[2018-03-15 12:48:21] WARN connection/get_ssl_certificate Invalid private key file /usr/local/icecast/share/fullchain.pem
[2018-03-15 12:48:21] INFO connection/get_ssl_certificate No SSL capability on any configured ports
Я установил эти файлы сертификата для чтения пользователем: richard и, конечно, я также запускаю сам сервер с пользователем richard.
Может быть, у вас есть идеи, что не так?
Вы также можете увидеть мой конфигурационный файл здесь:
<listen-socket>
<port>8443</port>
<ssl>1</ssl>
</listen-socket>
В разделе пути я установил часть SSL-сертификата для SSL.
<ssl-certificate>/usr/local/icecast/share/icecast/fullchain.pem</ssl-certificate>
Пока ничего. Сам сервер запускается на порту, однако при посещении его через https:// он просто не загружается. с http:// порт (8443) работает нормально.
Любая помощь ценится.
3 ответа
Для получения полного сертификата Icecast2 вы можете использовать команду:
cat /etc/letsencrypt/live/domain.com/fullcert.pem /etc/letsencrypt/live/domain.com/privkey.pem > /etc/icecast2/bundle.pem
Это объединит и сохранит оба сертификата в один файл с именем bundle.pem в папке icecast2, на который вы можете указать конфигурацию icecast2.
Я также нашел это очень полезное и полное руководство для справки: https://mediarealm.com.au/articles/icecast-https-ssl-setup-lets-encrypt/
Собственно, я решил проблему сам.
Проблема была в SSL, а не в настройках. Кажется, что сгенерированный SSL LetsEncrypt (fullchain.pem) работает неправильно. Поэтому вместо того, чтобы использовать это, я скопировал содержимое из cert.pem и privkey.pem и создал новый файл с именем icecast.pem и вставил оба в один. (сначала сертификат, а затем привки) и теперь все работает нормально и безопасно!
Я гений!!!
Есть еще один способ — пробросить Nginx, конфигурация которого распространена в интернете. Так что сервер выставляет только порты 80 и 443 для http web. Затем используйте letsencrypt для SSL Nginx.