Let’s Encrypt и certbot для HTTPS

Начиная с версии 1.9.2.340 Perfect Streamer поддерживает автоматическое обновление сертификатов Let’s Encrypt для работы HTTPS в Web Server, HTTP Server, EPG Server.

Настройка certbot для RHEL

Ограничение:

  • Должен быть свободен tcp/80 порт и назначен белый IP-адрес с публичным доменным именем.

  • Для всех HTTPS-серверов используется одинаковое имя хоста (web server, http server, epg server).

Установка certbot (https://certbot.eff.org/instructions?ws=other&os=snap):

sudo yum install snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install certbot --classic

Настройка certbot:

sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot certonly --standalone

Проверка certbot:

sudo certbot renew --dry-run

Проверка таймера certbot:

systemctl list-timers | grep certbot

В админке Perfect Streamer включить HTTPS на серверах (Web Server, HTTP Server, EPG Server).

Создать hook скрипт (https://pstreamer.tv/distrib/scripts/cert_update.zip) и разместить его по пути:

/opt/pss/scripts/cert_update.sh

В нем, если надо, прописать доменное имя хоста, по умолчанию берется из /etc/hostname.

Сделать файл исполняемым.

chmod +x /opt/pss/scripts/cert_update.sh

Проверить запуск скрипта, не должно быть ошибок:

/opt/pss/scripts/cert_update.sh

Настройки HTTPS должны примениться, изменение статуса отобразится в логах.

Добавить hook файл в certbot:

certbot renew --deploy-hook "/opt/pss/scripts/cert_update.sh"

Еще раз проверить certbot:

sudo certbot renew --dry-run

Настройка certbot для Debian/Ubuntu

Настройка для Debian аналогична RHEL, краткое описание установки на примере Ubuntu 24.04.2 LTS.

Установка certbot:

apt install certbot
certbot certonly

Делаем скрипт исполняемым:

chmod +x /opt/pss/scripts/cert_update.sh

Запускаем скрипт:

/opt/pss/scripts/cert_update.sh

Выдаёт:

Select domain name (your domain name)

Проверяем обновились ли сертификаты:

ls -lat /opt/pss/config/cert/
total 44
-rw------- 1 root root  241 May 26 07:52 epgserver.key
-rw------- 1 root root  241 May 26 07:52 httpserver.key
-rw------- 1 root root  241 May 26 07:52 webserver.key
-rw-r--r-- 1 root root 1338 May 26 07:52 epgserver.crt
-rw-r--r-- 1 root root 1338 May 26 07:52 httpserver.crt
-rw-r--r-- 1 root root 1338 May 26 07:52 webserver.crt

Дата должна быть актуальной.