Бесплатные сертификаты LetsEncrypt в панели управления VestaCP на CentOS 7
Раздел(ы): GNU Linux - CentOS / Debian, SSL сертификаты, Вебмастеру, Панели управления хостингом, Программное обеспечение
Просмотры: 9112
Комментарии: 6
26 октября 2016 года мир бесплатных SSL сертификатов для сайтов был огорчен печальной новостью: начиная с Firefox 51 будут считаться недействительными сертификаты, которые были выданы компаниями WoSign и StartCom после 21 октября 2016 года.
Подробнее о причинах такого решения читайте здесь.
Что делать в такой ситуации тем у кого скоро заканчивается срок действия текущих сертификатов и необходимо их продление в ближайшее время? Очевидно, что нужно обратить внимание на еще один сервис раздающий бесплатные SSL сертификаты для сайтов — Let’s Encrypt.
Для кого эта статья
В данной статье приведен пример автоматического получения бесплатного SSL сертификата, когда на сервере установлена операционная система CentOS 7.X и панель управления VestaCP версии 0.9.8-16.
В качестве веб-сервера у меня используется связка Apache+Nginx.
Ранее я писал как установить в панель VestaCP сертификаты от StartSSL — https://moonback.ru/page/startssl-vestacp
Алгоритм получения бесплатного сертификата
Выполните последовательно две команды из консоли, сначала:
#v-add-letsencrypt-user USERNAME
где USERNAME — имя пользователя в панели управления VestaCP.
а затем:
#v-add-letsencrypt-domain USERNAME DOMAINNAME.TLD
где USERNAME — имя пользователя в панели управления VestaCP, а DOMAINNAME.TLD — доменное имя зарегистрированное в панели VestaCP у данного пользователя.
Ошибка LetsEncrypt account registration 400 на CentOS 7
Если при попытке создания сертификата вы получаете сообщение об ошибке:
/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
то сначала установите недостающее:
#yum 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]
Благодарности
При написании статьи были использованы следующие источники:
Спасибо!
Все работает. Очень помогла статья.
Вы сэкономили мне денег 🙂 теперь всем буду ставить SSL
Спасибо, работает.
Подскажите, а в 17 релизе Весты нельзя ли прям из панели получить сертификат?
Да, начиная с версии 0.9.8-17 бесплатно оформить и подключить сертификат LetsEncrypt можно сразу из GUI панели VestaCP не прибегая к консоли. Но если возникнут ошибки, то воспользуйтесь рекомендациями из данной статьи.
Спасибо, Юрий.
А подскажите, как проверить срок действия сертификата (сколько осталось до окончания)?
Николай, узнать срок окончания можно в панели управления, в разделе редактирования домена.
Спасибо. А то смутили письма-уведомления от Let’s Encrypt Expiry Bot об окончании срока сертификата.