Давайте зашифруем ручной сертификат с помощью preferred-challenge через DNS

#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)