Сертификат Let’s Encrypt для админки VestaCP вместо самоподписанного SSL сертификата
Раздел(ы): Панели управления хостингом
Просмотры: 4542
Комментарии: 1
С каждым днем браузеры все беспощадней относятся к незащищенным соединениям и самоподписным сертификатам. Если вы используете для управления хостингом панель управления VestaCP, то обратили внимание, что в последнее время подключение по IP адресу превращается в небольшой квест, и все это из-за самоподписного SSL сертификата.
VestaCP и сертификаты Lets Encrypt
Как известно последние версии VestaCP позволяют в автоматическом режиме получать и продлевать для доменов SSL сертификаты от Lets Encrypt. Насколько мне известно получить его для IP адреса нельзя, во всяком случае на момент написания статьи и именно в VestaCP от Lets Encrypt.
Поэтому напрашивается решение, чтобы не добавлять самоподписной SSL сертификат панели управления VestaCP в исключения в браузере, нужно обращаться к панели по доменному имени, например https://domainname.tld:8083. Но если вы сделаете это, то все равно получите сообщение об ошибке, что ваше соединение не защищено.
Подключаем SSL сертификат Lets Encrypt к админке панели управления хостингом VestaCP
Причина в том, что панель работает как отдельный сервис на порту 8083 и у нее свой самоподписной сертификат. Если мы хотим запускать ее используя доменное имя, то для панели нужно прописать сертификат от домена.
Можно использовать любое доменное имя зарегистрированное в панели для которого есть актуальный SSL сертификат. Я обычно использую технический домен у пользователя Admin.
Чтобы все заработало как надо, выполните следующее:
Сначала сохраните старые сертификаты панели под новым именем (на всякий случай):
# mv /usr/local/vesta/ssl/certificate.crt /usr/local/vesta/ssl/certificate.crt.old # mv /usr/local/vesta/ssl/certificate.key /usr/local/vesta/ssl/certificate.key.old
Далее создайте жесткую ссылку на действующий SSL сертификат. Это позволит всегда использовать актуальный сертификат для панели.
# ln -s /home/<strong>admin</strong>/conf/web/ssl.<strong>DomainName</strong>.crt /usr/local/vesta/ssl/certificate.crt # ln -s /home/<strong>admin</strong>/conf/web/ssl.<strong>DomainName</strong>.key /usr/local/vesta/ssl/certificate.key
где admin — имя пользователя которому принадлежит домен с сертификатом, а DomainName — имя домена зарегистрированного в панели и для которого есть сертификат.
После этого перегрузите панель VestaCP:
# service vesta restart
Теперь зайдите в панель по имени домена, например https://domain name.tld:8083 и убедитесь, что все работает:
Если для получения SSL сертификатов вы используете Lets Encrypt, то с данным решением вам не придется каждые 90 дней вручную копировать сертификаты домена для панели, и уж тем более писать скрипт копирования и засовывать его в CRON. Этот способ заставляет панель считать сертификаты домена своими.
Благодарности
При написании статьи были использованы следующие источники:
Спасибо большое! Очень быстро и благодаря Вам легко =)