Certbot – бесплатный инструмент с открытым исходным кодом, предназначенный для автоматизации работы с SSL/TLS-сертификатами от центра сертификации Let’s Encrypt. С его помощью можно получить сертификат для домена, установить его на веб-сервер и настроить автоматическое продление.
Certbot поддерживает популярные веб-серверы, такие как Nginx, Apache, Lighttpd и другие, и значительно упрощает переход сайта на защищённое HTTPS-соединение. Вместо ручного создания сертификатов и их регулярного продления Certbot выполняет данные операции автоматически, что удобно при обслуживании серверов и большого количества доменов.
Установка Certbot из стандартных репозиториев в Ubuntu и Debian
Самым простым способом установки Certbot в Ubuntu и Debian является инсталляция пакета из стандартного репозитория. Для этого используется пакетный менеджер APT. Чтобы это сделать, сначала обновите списки пакетов в системе:
$ sudo apt update
После чего запустите установку Certbot:
$ sudo apt install certbot
Для проверки корректности установки можно вывести на экран версию установленного пакета:
$ certbot --version

Установка Certbot с использованием EPEL в CentOS и Rocky Linux
В RHEL-подобных системах – CentOS и Rocky Linux – Certbot не доступен для установки из стандартных репозиториев. Вместо этого используется EPEL (Extra Packages for Enterprise Linux) – дополнительный репозиторий, поддерживаемый проектом Fedora и позволяющий устанавливать программное обеспечение с помощью стандартного менеджера пакетов DNF. Чтобы подключить EPEL, выполните команду:
$ sudo dnf install epel-release
Затем запустите инсталляцию Certbot через DNF:
$ sudo dnf install certbot
Чтобы проверить версию установленного пакета, выполните команду:
$ certbot --version

При этом из-за несколько консервативной политики в отношении дистрибутивов в стандартных репозиториях, как и в репозитории EPEL, могут содержаться пакеты, отстающие от версий, актуальных на текущий момент. Это же относится и к Certbot. Если в функционале установленного приложения отсутствуют возможности, представленные в его последнем релизе, то следует инсталлировать пакет одним из альтернативных способов.
Установка Certbot с использованием Snap
Способ, который рекомендует сам EFF/Certbot, – установка с использованием Snap. Данный метод даёт всегда актуальную версию независимо от используемой системы.
Snap – система управления программными пакетами, разработанная компанией Canonical. Чтобы проинсталлировать Snap на Ubuntu или Debian, выполните команду:
$ sudo apt install snapd
Для установки на CentOS или Rocky Linux необходимо сначала подключить репозиторий EPEL, поскольку пакет Snap отсутствует в стандартных репозиториях этих дистрибутивов:
$ sudo dnf install epel-release
Затем выполните инсталляцию Snap при помощи пакетного менеджера DNF:
$ sudo dnf install snapd
После установки Snap и на Debian-системах, и в RHEL-подобных дистрибутивах включите snapd.socket в автозагрузку и запустите его:
$ sudo systemctl enable --now snapd.socket
В данном случае используется механизм systemd socket activation. Система инициализации и управления службами запускает и отслеживает сокет snapd.socket, а при обращении к нему автоматически выполняет старт службы snapd, если она ещё не запущена.
Затем создайте символическую ссылку /snap на каталог /var/lib/snapd/snap. Это обеспечит совместимость с некоторыми приложениями и версиями Snap, которые ожидают наличие каталога /snap:
$ sudo ln -s /var/lib/snapd/snap /snap
После чего проинсталлируйте последнюю версию Certbot из Snap Store. Параметр --classic устанавливает Certbot в классическом режиме, который предоставляет приложению необходимый доступ к системным ресурсам:
$ sudo snap install --classic certbot
Чтобы убедиться в том, что установка прошла успешно, выведите версию Certbot:
$ certbot --version

Установка Certbot через pip в отдельное виртуальное окружение Python (venv)
pip – менеджер пакетов Python, предназначенный для установки и управления Python-библиотеками и приложениями. Установка Certbot через pip позволяет использовать актуальную версию Certbot независимо от версии, доступной в репозиториях операционной системы. Кроме того, при использовании данного метода установка Certbot производится в отдельное виртуальное окружение Python. Таким образом его зависимости будут изолированы от системных пакетов.
При использовании данного метода сначала проинсталлируйте зависимости, необходимые для установки и работы Certbot в виртуальное окружение Python. В Ubuntu и Debian для этого выполните команду:
$ sudo apt install python3-venv python3-dev libaugeas-dev gcc
В CentOS и Rocky Linux для установки зависимостей запустите:
$ sudo dnf install python3 python3-devel augeas-libs gcc
Затем уже на любой системе создайте виртуальное окружение:
$ sudo python3 -m venv /opt/certbot/
В данном случае каталог /opt/certbot/ будет содержать отдельную Python-среду со своим python, pip и установленными пакетами.
После чего запустите обновление pip:
$ sudo /opt/certbot/bin/pip install --upgrade pip
Следующей командой проинсталлируйте Certbot:
$ sudo /opt/certbot/bin/pip install certbot
Чтобы команду certbot можно было запускать без указания полного пути, создайте символическую ссылку:
$ sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
Проверить корректность установки можно при помощи вывода версии Certbot:
$ certbot --version

