Mejor método, gracias a las respuestas de los demás por ayudarme a llegar a esto.
Determine qué complementos están instalados actualmente:
# 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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Determine dónde está instalado su certbot (en mi caso certbot-auto):
# find / -name certbot
/opt/eff.org/certbot
...
Entra en Virtual Env e instala el complemento
cd /opt/eff.org/certbot/venv
source bin/activate
pip install certbot-dns-google
deactivate
Verifique los complementos certbot nuevamente
# 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
* dns-google
Description: Obtain certificates using a DNS TXT record (if you are using Google
Cloud DNS for DNS).
Interfaces: IAuthenticator, IPlugin
Entry point: dns-google = certbot_dns_google.dns_google:Authenticator
* 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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Primer intento
Para saber dónde
certbot
está instalado. Ocommand -v certbot
si lo prefieres.Luego ejecute
head /usr/bin/certbot
y observe qué versión de Python está usando:En mi caso, estaba usando Python 3.
Noté por mi salida de pip que estaba tratando de instalar un paquete Python 2.7:
Entonces, ¿cómo obtenemos pip para instalar paquetes de Python 3? Solo copie las instrucciones desde aquí :
Ahora debería tener el
pip3
comando, así que ejecute esto en su lugar:Y ahora intenta nuevamente:
fuente
ImportError: cannot import name 'sysconfig'
instale el paquetepython3-distutils
. Eso y usar sudo hizo el truco. Tengo el plugin route53 cargado.Ahora (julio de 2018), debería poder usar
o
Es posible que necesite
sudo
privilegios para cualquiera.Después de la instalación, es posible que no pueda ver el complemento
certbot plugins
, pero debería poder hacerlocertbot certonly --dns-digitalocean
bien.fuente
apt
ycertbot-dns-digitalocean
conpip
y certbot no pudo encontrarlo.pip
es diferente? Yoapt
instalado Python 2.7 y despuéssudo easy_install pip
(puede requerir instalar un apt de ellos:python-setuptools python-dev build-essential
)Tienes que usar Docker para usar los complementos dns. Desde complementos DNS :
fuente
certbot-auto
solo debe usar Docker si está seguro de saber lo que está haciendo y tiene una buena razón. para hacerlo ".La forma en que instala los complementos certbot depende de cómo instaló certbot. Si instaló certbot usando algún administrador de paquetes (apt, rpm, brew ...), entonces debe buscar complementos certbot compatibles en el repositorio de ese administrador de paquetes.
Let's Encrypt también admite un método de instalación alternativo: el contenedor certbot-auto. Este contenedor crea una instalación virtual privada de Python (generalmente en
/opt/eff.org/certbot/venv
) e instala certbot en ese directorio. Una buena característica de certbot-auto es que mantiene automáticamente actualizado al cliente certbot. Una desventaja importante es que no admite oficialmente la instalación de complementos (es decir, aparte de cuatro complementos que se instalan de forma predeterminada).Es bastante fácil de evitar esta limitación, como se describe en la solución de Ryan G . Sin embargo, los complementos instalados a través de ese procedimiento se perderán cada vez que certbot-auto se actualice, lo que puede provocar fallas de renovación aleatorias. Aquí, hemos tenido algunas situaciones en las que algunos certificados casi caducan debido a ese problema. Varios tickets discuten este problema en el rastreador de errores de certbot, y el equipo reconoce el problema, pero parece que todavía puede pasar mucho tiempo antes de que el problema se solucione realmente.
Por lo tanto, si usa certbot-auto en una configuración automatizada, es deseable evitar la actualización automática de certbot-auto (ejecutándolo con
--no-self-upgrade
) o implementar alguna estrategia para garantizar que los complementos necesarios se reinstalen automáticamente cada vez que certbot se actualice.Una posible solución para garantizar que los complementos necesarios estén instalados es agregar un contenedor alrededor de certbot-auto. Esa envoltura esencialmente podría verse de la siguiente manera:
He puesto a disposición una versión más completa de ese contenedor aquí ; La única diferencia con la versión más larga es que garantiza que el contenedor se ejecute como root y maneja adecuadamente el
--help
argumento.Para instalar ese contenedor, descargue el
certbot-auto
programa oficial/usr/local/bin/certbot-auto-upstream
y copie el contenedor/usr/local/bin/certbot-auto
. Asegúrese de que ambos archivos tengan los privilegios adecuados (chown root:root /usr/local/bin/certbot-auto*
, entonceschmod 755 /usr/local/bin/certbot-auto*
). En el archivo contenedor, asegúrese de que la líneaCERTBOT_PLUGINS="..."
incluya la lista de complementos que realmente necesita. Y eso es. Simplemente use elcertbot-auto
comando, como lo habría hecho anteriormente, y olvídese delcertbot-auto-upstream
archivo.fuente
Si está en Ubuntu o Debian, puede obtener los siguientes paquetes de las pruebas de Debian (buster)
python3-certbot-dns-digitalocean_0.23.0-2_all.deb python3-digitalocean_1.13.2-1_all.deb
fuente
Esto funcionó para mí en Ubuntu 18.04 LTS
Ver este problema de certbot
fuente
Tuve el mismo problema, después de actualizar certbot en OS XI no pude hacer que apareciera el complemento digitalocean, incluso después de reinstalarlo
pip install certbot-dns-digitalocean
.La solución fue desinstalarlo y luego reinstalarlo. Solía sudo solo para estar seguro:
Luego apareció bien en la
certbot plugins
lista.fuente