Обо мне
1 заметка с тегом

letsencrypt

Как получить бесплатный ssl сертификат в панели управления VestaCP на Debian 8

26 октября 2016 года мир бесплатных SSL сертификатов для сайтов был огорчен печальной новостью: начиная с Firefox 51 будут считаться недействительными сертификаты, которые были выданы компаниями WoSign и StartCom после 21 октября 2016 года.

Подробнее о причинах такого решения читайте здесь.

Что делать в такой ситуации тем у кого скоро заканчивается срок действия текущих сертификатов и необходимо их продление в ближайшее время? Очевидно, что нужно обратить внимание на еще один сервис раздающий бесплатные SSL сертификаты для сайтов — Let’s Encrypt.

Для кого эта статья

В данной статье приведен пример автоматического получения бесплатного SSL сертификата, когда на сервере установлена операционная система Debian 8 и панель управления VestaCP версии 0.9.8-16.

В качестве веб-сервера у меня используется связка Apache+Nginx.

Алгоритм получения бесплатного сертификата

Выполните последовательно две команды из консоли, сначала:

#v-add-letsencrypt-user USERNAME

где USERNAME — имя пользователя в панели управления VestaCP.

а затем:

#v-add-letsencrypt-domain USERNAME DOMAINNAME.TLD

где USERNAME — имя пользователя в панели управления VestaCP, а DOMAINNAME.TLD — доменное имя зарегистрированное в панели VestaCP у данного пользователя.

Ошибка LetsEncrypt account registration 400 на Debian 8

Если при попытке создания сертификата вы получаете сообщение об ошибке:

/usr/local/vesta/bin/v-add-letsencrypt-user: line 59: xxd: command not found
/usr/local/vesta/bin/v-add-letsencrypt-user: line 63: xxd: command not found
Error: LetsEncrypt account registration 400

то сначала установите недостающее:

#apt-get install vim-common

а затем отредактируйте 44 строчку в файле: /usr/local/vesta/bin/v-add-letsencrypt-user, заменив ее на

agreement='https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf'

После этого получение сертификата должно пройти без ошибок.

Проверка полученного сертификата

Для проверки зайдите в настройки домена и проверьте настройки HTTPS, вы должны увидеть настроенные сертификаты:

Затем посетите свой сайт по HTTPS протоколу и посмотрите его сертификат:

Автоматическое продление сертификата LetsEncrypt

Сертификат LetsEncrypt выдается на 90 дней. Когда до окончания срока его действия останется меньше 30 дней, то сертификат можно будет продлить, для этого необходимо выполнить в консоли следующее:

#v-update-letsencrypt-ssl

Эта команда обновляет ssl сертификаты сразу для всех доменов и пользователей.

При желании эту задачу можно возложить на CRON. В моем примере попытка обновления SSL сертификатов будет предприниматься раз в 15 дней в 12-00. Сертификаты, у которых до окончания срока действия остается менее 30 дней, будут автоматически обновлены.

Переадресация на HTTPS

Для автоматической переадресации посетителей сайта на HTTPS добавьте следующие строки в файл .htaccess

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]