@altai2013

Как заменить самоподписанный SSL-сертификат VestaCP на нормальный от letsencrypt?

На VPS-хостинге имеется сервер с Ubuntu 16.04, установлена панель управления VestaCP на Nginx, создано доменное имя, через панель управления VestaCP прописано получение (и, насколько я понимаю, автоматическое обновление) SSL-сертификата от letsencrypt.
Всё работает нормально, к подключению через https к домену претензий нет, но сама панель VestaCP по-прежнему открывается на https://mydomain.com:8083 с штатным самоподписанным SSL-сертификатом, а не полученным от letsencrypt сертификатом mydomain.com
Вопрос: как правильнее и проще заменить самоподписанный сертификат VestaCP на валидный от letsencrypt? Сертификат не домена, а именно самой панели VestaCP? Перерыл все настройки панели - не вижу такого пункта.
Можно вручную поправить пути к сертификату в файле настроек VestaCP (/usr/local/vesta/nginx/conf/nginx.conf), но я боюсь, что ручные правки будут затёрты после очередного автоматического обновления кода самой VestaCP.
Можно прописать в планировщике задач копирование сертификата letsencrypt в папку, где VestaCP хранит свой самоподписанный, но мне кажется это какой-то костыльный способ. Должна же быть какая-то штатная процедура у VestaCP для замены сертификата самой панели?
  • Вопрос задан
  • 1724 просмотра
Решения вопроса 1
@altai2013 Автор вопроса
Пока что нашёл такое решение (буду рад, если кто-то предложит варианты лучше): пишем скрипт, который будет ежедневно выполняться и копировать в папку с самоподписанным SSL-сертификатом VestaCP другой наш SSL-сертификат, полученный для доменного имени.

1) Создаём в папке /etc/cron.daily/ файл под именем vesta_ssl:
nano /etc/cron.daily/vesta_ssl

2) пишем в файл скрипт и сохраняем его, предварительно заменив [USER] на имя пользователя, создававшего домен в VestaCP (например admin) и заменив [DOMAIN] на доменное имя, для которого получен валидный SSL-сертификат (например mydomain.com):
#!/bin/bash

cert_src="/home/[USER]/conf/web/ssl.[DOMAIN].pem"
key_src="/home/[USER]/conf/web/ssl.[DOMAIN].key"
cert_dst="/usr/local/vesta/ssl/certificate.crt"
key_dst="/usr/local/vesta/ssl/certificate.key"

if ! cmp -s $cert_dst $cert_src
then
        # Copy Certificate
        cp $cert_src $cert_dst

        # Copy Keyfile
        cp $key_src $key_dst

        # Change Permission
        chown root:mail $cert_dst
        chown root:mail $key_dst

        # Restart Services
        service vesta restart &> /dev/null
        service exim4 restart &> /dev/null
fi


3) делаем скрипт исполняемым файлом:
chmod +x /etc/cron.daily/vesta_ssl

4) запускаем скрипт вручную, чтобы применить его немедленно, не дожидаясь расписания cron:
./vesta_ssl
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
1) Выкинуть панель управления...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы