#python #lets-encrypt #certbot
#python #давайте зашифруем #certbot
Вопрос:
Я пытаюсь сгенерировать сертификат letsencrypt для компьютера, к которому у меня нет прямого доступа (помимо загрузки SSL-сертификатов). Я загрузил последнюю версию CLI (certbot) и обнаружил флаг --preferred-challenge
, который, по-видимому, разрешает проверку DNS-хоста, а не стандартную проверку HTTP.
Когда я запускаю следующее:
./certbot-auto certonly --manual --preferred-challenge dns --domains domain_to_secure.com
Я получаю следующее сообщение:
Для самостоятельной проверки требуется установка дополнительной зависимости
dnspython
.
Достаточно легко найти пакет dnspython в сети, но как мне заставить certbot распознать его как пакет плагинов?
Ответ №1:
As certbot-auto
запускается и выполняет всю свою первоначальную настройку, после установки системных пакетов вы увидите пару строк, таких как:
Creating virtual environment...
Installing Python packages...
Это твой намек. certbot-auto является вежливым гражданином Python и использует virtualenv. Найти его может быть неудобно, но расположение кажется довольно стандартным. Запуск от имени root с выпуском версии 0.9.3, virtualenv был здесь для Arch, Centos7 и Ubuntu 16.04: . /root/.local/share/letsencrypt/
Теперь, когда мы это знаем, мы можем использовать virtualenv pip
для установки зависимости.
$ /root/.local/share/letsencrypt/bin/pip install dnspython
Бонус если вы действительно хотите подтвердить, имитируйте код certbot:
$ /root/.local/share/letsencrypt/bin/python
>>> from acme import util
>>> import acme.dns_resolver
>>> util.activate(acme.dns_resolver.DNS_REQUIREMENT)