sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx
现在我想设置我的证书,但是我需要
dns-digitalocean
插件:# certbot certonly --dns-digitalocean
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Could not choose appropriate plugin: The requested dns-digitalocean plugin does not appear to be installed
The requested dns-digitalocean plugin does not appear to be installed
我尝试使用
pip
安装它: /> 如何正确安装?
#1 楼
更好的方法,这要感谢其他人的帮助,以帮助我解决这个问题。确定当前安装了哪些插件:已安装certbot(在我的情况下为certbot-auto):
# certbot-auto plugins
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* apache
Description: Apache Web Server plugin - Beta
Interfaces: IAuthenticator, IInstaller, IPlugin
Entry point: apache = certbot_apache.entrypoint:ENTRYPOINT
* nginx
Description: Nginx Web Server plugin
Interfaces: IAuthenticator, IInstaller, IPlugin
Entry point: nginx = certbot_nginx.configurator:NginxConfigurator
* standalone
Description: Spin up a temporary webserver
Interfaces: IAuthenticator, IPlugin
Entry point: standalone = certbot.plugins.standalone:Authenticator
* webroot
Description: Place files in webroot directory
Interfaces: IAuthenticator, IPlugin
Entry point: webroot = certbot.plugins.webroot:Authenticator
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
进入虚拟环境并安装插件
# find / -name certbot
/opt/eff.org/certbot
...
再次验证certbot插件
cd /opt/eff.org/certbot/venv
source bin/activate
pip install certbot-dns-google
deactivate
#2 楼
第一次运行# type certbot
certbot is hashed (/usr/bin/certbot)
找出
certbot
的安装位置。如果需要,也可以使用command -v certbot
。然后运行
head /usr/bin/certbot
并注意它使用的是哪个版本的Python: Python3。我从pip输出中注意到,它正在尝试安装Python 2.7软件包:改为安装Python 3软件包?只需从此处复制说明:
,然后重试:
#!/usr/bin/python3
评论
如果遇到此错误ImportError:无法导入名称'sysconfig'安装软件包python3-distutils。那并使用sudo达到了目的。我已加载route53插件。
– DKebler
19年1月17日,0:32
#3 楼
现在(2018年7月),您应该可以使用pip install certbot-dns-digitalocean
或
git clone https://github.com/certbot/certbot.git
cd certbot/certbot-dns-digitalocean/
python setup.py install
两者都需要
sudo
特权。安装后,您可能看不到带有
certbot plugins
的插件,但您应该能够正常使用certbot certonly --dns-digitalocean
。评论
不挂断。您如何安装certbot?我认为我的问题是我使用apt和certbot-dns-digitalocean安装了aptbot和pip,而certbot无法找到它。
– mpen
18年7月16日在22:52
是的,我以与您相同的方式进行安装。也许您安装pip的方式有所不同?我安装了python 2.7,然后安装了sudo easy_install pip(可能需要对这些安装apt:python-setuptools python-dev build-essential)
–戴维斯先生
18年7月17日在16:34
#4 楼
您必须使用Docker才能使用dns插件。来自DNS插件:这些插件仍在许多发行版本的打包过程中,并且当前无法与
certbot-auto
一起安装。但是,如果您自己愿意安装证书,则可以使用Docker运行这些插件。评论
Doc还说:“大多数用户应该使用操作系统软件包(请参阅certbot.eff.org上的说明),或者作为回退方式,使用certbot-auto。只有在确定知道自己在做什么并且拥有这样做的充分理由。”
– Tortor
19年3月1日在9:40
#5 楼
安装certbot插件的方式取决于安装certbot本身的方式。如果您使用某些程序包管理器(apt,rpm,brew ...)安装了certbot,则应在该程序包管理器的存储库中查找兼容的certbot插件。 certbot自动包装程序。该包装器创建一个专用的Python虚拟安装(通常在/opt/eff.org/certbot/venv
中),然后将certbot安装到该目录中。 certbot-auto的一个不错的功能是它可以自动使certbot客户端保持最新状态。一个主要的缺点是它不正式支持插件安装(即,默认情况下不安装四个插件)。可以很容易地解决此限制,如Ryan G的文章所述。解。但是,每次certbot-auto更新自身时,通过该过程安装的插件都会丢失,这可能导致随机续订失败。在这种情况下,由于这种问题,我们遇到了一些证书即将到期的情况。有几张票在certbot的bug跟踪器上讨论了此问题,并且团队确认了该问题,但看来要真正解决该问题可能还有很长的路要走。因此,如果使用certbot-auto在自动设置中,希望阻止certbot-auto的自我更新(通过使用
--no-self-upgrade
运行),或者实现某种策略以确保每次certbot更新时都自动重新安装所需的插件。确实确保已安装必需的插件的可能解决方案是在certbot-auto周围添加包装器。该包装器实质上可以如下所示:
#!/bin/bash
# The list of plugins to be installed
CERTBOT_PLUGINS="certbot-dns-route53"
# Force the venv directory to be where we can easily find it
export VENV_PATH="/opt/eff.org/certbot/venv"
# Force certbot-auto to be where we expect it to be
export CERTBOT_AUTO="/usr/local/bin/certbot-auto-upstream"
# Force certbot-auto to bootstrap or upgrade itself, but do no more
"${CERTBOT_AUTO}" --install-only "$@"
# Check if required plugins are installed; install them if they are missing
(
cd ${VENV_PATH}
source bin/activate
for plugin in $CERTBOT_PLUGINS ; do
if ! pip show -q "$plugin" ; then
pip install "$plugin"
fi
done
deactivate
)
# Execute the actual certbot command
"${VENV_PATH}/bin/letsencrypt" "$@"
我在这里提供了该包装器的更完整版本;与较长版本的唯一区别在于,它确保包装程序以root身份运行,并且可以正确处理
--help
参数。要安装该包装器,请将官方
certbot-auto
程序下载到/usr/local/bin/certbot-auto-upstream
,然后将包装器复制到/usr/local/bin/certbot-auto
。确保两个文件都具有适当的特权(chown root:root /usr/local/bin/certbot-auto*
,然后chmod 755 /usr/local/bin/certbot-auto*
)。在包装器文件中,确保CERTBOT_PLUGINS="..."
行包含您实际需要的插件列表。就是这样。只需像以前一样使用certbot-auto
命令,而忽略certbot-auto-upstream
文件。#6 楼
如果您使用的是ubuntu或debian,则可以从debian测试(无效)中获取以下软件包:python3-certbot-dns-digitalocean_0.23.0-2_all.deb python3-digitalocean_1.13.2-1_all。 deb
#7 楼
这适用于我在Ubuntu 18.04 LTS上的操作apt install certbot
apt install python3-certbot-dns-digitalocean
请参阅此certbot问题
#8 楼
我遇到了同样的问题,在OS XI上更新certbot之后,即使使用pip install certbot-dns-digitalocean
重新安装了digitalbot插件,也无法显示digitalocean插件。解决方法是先将其卸载然后重新安装它。我使用sudo只是为了安全:sudo pip uninstall certbot-dns-digitalocean
sudo pip install certbot-dns-digitalocean
然后它在
certbot plugins
列表中显示为正常。
评论
请注意,这对于cron可能会有些棘手,certbot-auto版本升级将导致您需要再次cron“ pip install”部分。
–瑞安
19年6月3日在3:38
sudo find / -name venv | grep certbot可能是查找venv目录的更简单方法。
–卡梅伦
昨天