Как получить бесплатный 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 выдается на 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]