Хочу обратить внимание, что все работы вы проводите на с вой страх и риск. Так как официально такой хук не поддерживается.
Данной IP PBX пользуюсь уже без малого 5 лет, и не могу понять, почему такой простой функционал разработчики никак не хотят добавить по умолчанию.
Настройки будет производить для сервера, который опубликован по адресу – pbx.asadagar.ru. Так что не забудьте исправить FQDN на свой.
Поэтапно:
- Подключаемся к серверу по SSH
- Устанавливаем Cerbot через snap (подробное руководство):
apt-get install snapd
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
- Подаем заявку на выпуск сертификата в автономном режиме (не забываем изменить FQDN на свой):
certbot certonly --standalone -d pbx.asadagar.ru
- Теперь нужно создать скрипт для перемещения и переименовывания сертификатов, а так же для выправления прав и автоматический перезапуск службы:
- Создаем папку под скрипт:
mkdir /scripts
- Переходим в неё и создаем скрипт:
cd /scrips/
sudo nano autoupdater_cert_3cx.sh
- Вставляем следующий скрипт и не забываем изменить его под свой FQDN:
#!/bin/bash
mv /var/lib/3cxpbx/Bin/nginx/conf/Instance1/pbx.asadagar.ru-crt.pem /var/lib/3cxpbx/Bin/nginx/conf/Instance1/pbx.asadagar.ru-crt.pem.old
mv /var/lib/3cxpbx/Bin/nginx/conf/Instance1/pbx.asadagar.ru-key.pem /var/lib/3cxpbx/Bin/nginx/conf/Instance1/pbx.asadagar.ru-key.pem.old
cp /etc/letsencrypt/live/pbx.asadagar.ru/fullchain.pem /var/lib/3cxpbx/Bin/nginx/conf/Instance1/pbx.asadagar.ru-crt.pem
cp /etc/letsencrypt/live/pbx.asadagar.ru/privkey.pem /var/lib/3cxpbx/Bin/nginx/conf/Instance1/pbx.asadagar.ru-key.pem
chown phonesystem:phonesystem /var/lib/3cxpbx/Bin/nginx/conf/Instance1/pbx.asadagar.ru-crt.pem
chown phonesystem:phonesystem /var/lib/3cxpbx/Bin/nginx/conf/Instance1/pbx.asadagar.ru-key.pem
chmod 644 /var/lib/3cxpbx/Bin/nginx/conf/Instance1/pbx.asadagar.ru-crt.pem
chmod 640 /var/lib/3cxpbx/Bin/nginx/conf/Instance1/pbx.asadagar.ru-key.pem
systemctl restart nginx.service
- Делаем скрипт исполняемым:
sudo chmod +x autoupdater_cert_3cx.sh
Данный скрипт должен запускаться автоматически после каждого обновления сертификата Let’s Encrypt. Для этого нам нужно в конфигурации обновления создать „renew_hook“ который будет запускать данный скрипт.
- Поэтому открываем следующий файл:
nano /etc/letsencrypt/renewal/pbx.asadagar.ru.conf
- И в конце конфигурации добавляем следующую строку:
renew_hook = /scripts/autoupdater_cert_3cx.sh
- Тестируем получение сертификата:
certbot renew --force-renewal
- Теперь откройте веб-интерфейс 3CX в браузере и проверьте, правильно ли был развернут сертификат Let’s Encrypt.