我正在尝试为一台我无法直接访问的机器生成letsencrypt证书(除了上传SSL证书)。我下载了最新的CLI (certbot),发现了一个标志--preferred-challenge
,它似乎允许DNS主机验证,而不是标准的HTTP验证。
当我运行以下命令时:
./certbot-auto certonly --manual --preferred-challenge dns --domains domain_to_secure.com
我得到以下消息:
自我验证需要安装可选依赖项
dnspython
。
在网上很容易找到dnspython包,但我如何让certbot将其识别为插件包?
当certbot-auto
运行并完成所有初始设置时,您将在系统包安装后看到几行,如:
Creating virtual environment...
Installing Python packages...
这是你的提示。certbot-auto是一个礼貌的Python公民,使用虚拟环境。找到它可能会很尴尬,但它的位置看起来相当标准。在v0.9.3版本中以root身份运行,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)