Если вы решили сэкономить и получить бесплатный SSL сертификат, то в большинстве случаев сделать это не сложно. Благодаря проекту Lets’ encrypt процесс получения и настойки автоматизирован и выполняется буквально 2-3 командами в консоли сервера.
Мой UNIX сервер — это кастомная сборка LAMP от хостинг-провайдера на основе Debian 7 (Wheeze). Потому не всё прошло гладко и пришлось немного повозиться.
Немного об установщике certbot
Установка сертификата Let’s encrypt автоматизирована специальным скриптом — проект certbot. Для разных версий UNIX и типов веб-сервера разработан свой вариант установщика, который учитывает особенности вашей ОС. Так установка сертификата и настройка сервера сводится сводится к тому, чтобы скачать и запустить это скрипт. Вот так просто.
Если возникли какие то проблемы, то скрипт сообщит вам, чего не хватает.
Подготовка сервера Apache
Так как у меня сервер Apache, то первое что я сделал до установки сертификата, подключил SSL модуль apache — mod_ssl.so.
Для активации модуля требуется активировать команду загрузки модуля
1 |
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so |
обычно где то в основном файле конфигурации /etc/apache2/apache2.conf или подключаемых файлах конфигураций модулей.
Скачиваем скрипт certbot
Следующие две команды я выполнил как это было предписано в инструкции на сайте certbot.eff.org.
1 2 3 4 |
# загрузка скрипта wget https://dl.eff.org/certbot-auto # делаем скрипт исполняемым chmod a+x ./certbot-auto |
Но дальше пришлось остановится, т.к. потребовалось обновление некоторых пакетов операционной системы.
Обновление UNIX
В моём случае это были augeas-lenses и libaugeas0.
Типично для обновления пакетов в Debian требуется выполнить следующие команды (с правами root):
1 2 3 4 |
# обновление информации о пакетах apt-get update # сам апгрейд пакетов (скачивание и установка найденных обновлений) apt-get upgrade |
Можно также посмотреть сведения о текущей версии какого либо пакета вот такой командой:
1 2 3 |
dpkg -s <имя пакета> # например dpkg -s libaugeas0 |
Если апгрейд не привел к обновлению требуемых пакетов, значит скорее всего установщик пакетов apt не знает источник, откуда брать необходимые обновления.
Добавляем источник пакетов
Основной репозиторий 7 (wheeze) и 8 (jessie) Debian содержит очень старые версии требуемых библиотек augeas. Но их новые версии можно взять из репозитория бекпортов — wheezy-backports и jessie-backports.
Создадим соответствующий источник пакетов для apt. В папке /etc/apt/sources.list.d добавим новый файл:
1 |
touch backports.list |
в него вставим всего одну строку (для случая wheezy):
1 |
deb http://ftp.ru.debian.org/debian wheezy-backports main |
(для случая jessie):
1 |
deb http://ftp.ru.debian.org/debian jessie-backports main |
Теперь снова можно запустить apt-get update, apt-get upgrade.
Запускаем certbot
1 |
sudo certbot-auto --apache |
Понятно, что я уже попытался запустить скрипт, но он не смог выполнить свою работу, т.к. требовал свежие версии некоторых пакетов.
Но после обновления он выполнил все нужные манипуляции.
Скрипт нашел виртуальные хосты, описанные в конфигурации моего Apache, предложив выбрать какие из них требуют SSL сертификат. Для выбранных доменов был запрошен и установлен единый сертификат.
Если вы не включили сразу все домены в список, потом вы сможете их добавить в общий сертификат повторно выполнив запуск certbot.
Продление SSL сертификата
Сертификат выдаётся на 3 месяца, потом его нужно будет продлить. Лучше не дожидаться срока окончания, а продлить заранее. Делается это следующей командой:
1 |
sudo certbot-auto renew --no-self-upgrade |
За три месяца вы обязательно забудете куда вы скачивали certbot и как его запустить на обновление. Потому рекомендуется включить команду в задания cron или любую другой список команд, выполняемых по расписанию.
Для тестирования автообновления (чтобы убедиться, что все будет работать исправно) используйте:
1 |
sudo ./path/to/certbot-auto renew --dry-run |