Из всех бесплатных сертификатов, жив остался только Let’s Encrypt, но его особенность в том, что сертификат выдается сроком на 3 месяца.
Итак, нам нужно поставить сертификат, и сделать автоматическую выдачу при завершении срока сертификации.
В предыдущей статье, мы настроили Reverse Proxy с публикацией HTTPS траффика, теперь приступим к настройке сертификатов, поехали:
echo ‘deb http://ftp.debian.org/debian jessie-backports main’ | tee /etc/apt/sources.list.d/backports.list
после
aptitude update
ну а теперь ставим сам Let’s Encrypt:
aptitude install python-certbot-apache -t jessie-backports
Дожидаемся процесса установки, и пробуем выпустить сертификат:
certbot —apache
И вот тут нас поджидает неудача:
ERROR:letsencrypt_apache.configurator:No vhost exists with servername or alias of: sambi4.ru. No vhost was selected. Please specify servernames in the Apache config
Связано это с тем, что в репозитариях до сих пор старая версия, в которой наблюдается ошибка. А именно ошибки в python-скриптах. Решение как обычно просто:
Качаем свежую версию certbot:
git clone https://github.com/certbot/certbot.git
После чего, идем по пути:
/usr/lib/python2.7/dist-packages
И удаляем папки:
acme
certbot
certbot_apache
И копируем файлы из нового релиза:
cp /root/certbot/certbot /usr/lib/python2.7/dist-packages/
cp /root/certbot/acme/acme/ /usr/lib/python2.7/dist-packages/
cp /root/certbot/certbot-apache/certbot_apache/ /usr/lib/python2.7/dist-packages/
Теперь можно со спокойной душой запускать процесс выпуска сертификата:
certbot —apache
Отвечаем на вопросы и все!
Поздравляю, сертификат мы выпустили, теперь нужно добавить скрипт автопродления сертификата, т.к. Let’s Encrypt выдает сертификаты сроком только на 90 дней (мы об этом помним).
Все просто. Нам в cron нужно добавить строчку:
30 2 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log
Т.е. набираем:
crontab -e
И добавляем нашу строку (обязательно перейти на следующую срочку, иначе не сохранится)
И все, повторить бесконечное множество раз с другими сайтами.
Удачи, админы!