Настройка бесплатного https от Let’s Encrypt на сайтах с панелью Vesta

На всех серверах, где хостятся мои сайты, пользуюсь панелью Vesta (никак не приживается у меня привычка админить через консоль). Плюсов у неё много, один из них — простая установка https на сайты от сервиса Let’s Encrypt.

Let’s Encrypt выдаёт бесплатные сертификаты, но сроком только на 90 дней. Зато их перевыпуск можно настроить, например, на каждые 60 дней и забыть об этой проблеме. Для работы с сервисом в Vesta есть встроенные утилиты, но, судя по отзывам, работают они не очень, у меня тоже не завелись.

Зато есть letsencrypt-vesta, удобная утилита, которая берёт на себя всю работу с сертификатами. Для работы с ней вам нужно будет использовать всего 2 команды — для создания сертификатов и для их продления.

Кстати, многие бесплатные сертификаты имеют проблемы с работой в старых браузерах. Сам не сталкивался, но видел отзывы на форумах. С сертификатами от Let’s Encrypt я такой проблемы не встречал, что тоже можно отнести к плюсам.

Обновление от 29.11.2016. Если вы, несмотря на добавление встроенной фичи генерации сертификатов Let’s Encrypt в саму Vesta, продолжаете пользоваться скриптом и получаете ошибку Error: SSL=no doesn’t exist — это нормально. Ну не нормально, но так у всех. С обновлением 0.9.8-17 что-то изменилось, скрипт теперь бесполезен, да и дорабатывать его уже не имеет смысла. Но если доработают — обязательно допишу.

Обновление от 16.11.2016. Скоро моя инструкция станет бесполезной. Получил интересный ответ от официального аккаунта:

Установка letsencrypt-vesta

Процесс описан для дистрибутивов на основе Debian (Ubuntu и подобные). Подключитесь к своему серверу по ssh и загрузите все необходимые файлы следующими командами:

cd /usr/local
git clone https://github.com/certbot/certbot.git
git clone https://github.com/interbrite/letsencrypt-vesta.git

Если у вас не установлен git, что маловероятно, вы получите ошибку. Тогда выполните эту команду:

sudo apt-get install git

И повторите 2 и 3 строки из команды выше.

Создайте директорию webroot, где будут хранится файлы, необходимые для работы сертификата:

mkdir -p /etc/letsencrypt/webroot

Создайте необходимые символьные ссылки:

ln -s /usr/local/certbot/certbot-auto /usr/local/bin/certbot-auto
ln -s /usr/local/letsencrypt-vesta/letsencrypt-vesta /usr/local/bin/letsencrypt-vesta

Всё, утилита letsencrypt-vesta установлена и готова к работе.

Генерация сертификата для https от Let’s Encrypt в Vesta

Нужна всего одна команда:

sudo letsencrypt-vesta -m mail@mail.com user domain.com

Где:

  • mail@mail.com — email, на который привязывается сертификат и куда приходят оповещения о необходимости сделать продление (приходит за 20 дней до окончания его действия);
  • user — логин пользователя панели Vesta, владельца сайта, которому генерируем сертификат;
  • domain.com — сам домен, которому делаем https.

Введите команду и нажмите Enter.

Продление сертификатов Let’s Encrypt

При продлении не обязательно указывать email:

sudo letsencrypt-vesta -a 60 user domain1.com domain2.com domain3.com

В примере я указал несколько доменов, ибо так можно. Ещё добавился параметр -a со значением 60 — это указывается через сколько дней обновлять сертификат. Работает данный параметр, если у вас установлен пакет at. Если его нет:

sudo apt-get install at

После установки at можно вводить команду для автоматического обновления сертификатов, указанную выше.

Ещё есть вариант поставить задание в cron. В Vesta довольно удобный интерфейс для настройки заданий, можно делать прям там, либо командой:

sudo crontab -e

Но через панель всё же удобней:
Https от Let's Encrypt на панельке Vesta
В генераторе выберите каждый нечётный месяц, либо каждый чётный (ну очевидно, чтобы обновление шло каждый второй месяц, то есть каждые ~60 дней), я выбрал 1 число, 00:00 (лучше обновляться ночью, я считаю). Нажмите кнопку «Generate», поля слева автоматически заполнятся с нужными параметрами. Нажмите «Добавить» и всё, задание создано.

Опубликовано: 4 Ноябрь, 2016 | Метки: , , ,