Bessere Methode, dank der anderen Antworten, die mir dabei geholfen haben.
Bestimmen Sie, welche Plugins aktuell installiert sind:
# 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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bestimmen Sie, wo Ihr certbot (in meinem Fall certbot-auto) installiert ist:
# find / -name certbot
/opt/eff.org/certbot
...
Gehen Sie in die virtuelle Umgebung und installieren Sie das Plugin
cd /opt/eff.org/certbot/venv
source bin/activate
pip install certbot-dns-google
deactivate
Überprüfen Sie die Certbot-Plugins erneut
# 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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Erster Lauf
Um herauszufinden, wo
certbot
installiert ist. Odercommand -v certbot
wenn Sie es vorziehen.Führen
head /usr/bin/certbot
Sie dann Folgendes aus und notieren Sie, welche Version von Python verwendet wird:In meinem Fall wurde Python 3 verwendet.
Ich bemerkte an meiner Pip-Ausgabe, dass versucht wurde, ein Python 2.7-Paket zu installieren:
Wie bringen wir Pip dazu, stattdessen Python 3-Pakete zu installieren? Kopieren Sie einfach die Anweisungen von hier :
Jetzt solltest du den
pip3
Befehl haben, also führe diesen stattdessen aus:Und jetzt nochmal versuchen:
quelle
ImportError: cannot import name 'sysconfig'
stoßen, installieren Sie das Paketpython3-distutils
. Das und die Verwendung von sudo haben es geschafft. Ich habe Route53 Plugin geladen.Jetzt (Juli 2018) sollten Sie beide verwenden können
oder
Möglicherweise benötigen Sie
sudo
Berechtigungen für beide.Nach der Installation können Sie das Plugin möglicherweise nicht mit sehen
certbot plugins
, aber Sie sollten in der Lage sein, es incertbot certonly --dns-digitalocean
Ordnung zu bringen.quelle
apt
undcertbot-dns-digitalocean
mit installiert habepip
und certbot es nicht finden konnte.pip
anders? Ichapt
installierte Python 2.7 und dannsudo easy_install pip
(möglicherweise ein apt installiert diese benötigen:python-setuptools python-dev build-essential
)Sie müssen Docker verwenden, um DNS-Plugins zu verwenden. Von DNS-Plugins :
quelle
certbot-auto
. Sie sollten Docker nur verwenden, wenn Sie sicher sind, dass Sie wissen, was Sie tun, und einen guten Grund haben dazu. "Die Art und Weise, wie Sie Certbot-Plugins installieren, hängt davon ab, wie Sie Certbot selbst installiert haben. Wenn Sie certbot mit einem Paketmanager (apt, rpm, brew ...) installiert haben, sollten Sie im Repository dieses Paketmanagers nach kompatiblen certbot-Plugins suchen.
Let's Encrypt unterstützt auch eine alternative Installationsmethode: den certbot-auto-Wrapper. Dieser Wrapper erstellt eine private virtuelle Python-Installation (
/opt/eff.org/certbot/venv
normalerweise in) und installiert certbot in diesem Verzeichnis. Ein nettes Feature von certbot-auto ist, dass es den certbot-Client automatisch auf dem neuesten Stand hält. Ein großer Nachteil ist, dass die Installation von Plugins nicht offiziell unterstützt wird (abgesehen von vier Plugins, die standardmäßig installiert sind).Es ist einfach genug, diese Einschränkung zu umgehen, wie in der Lösung von Ryan G beschrieben . Plugins, die durch diese Prozedur installiert werden, gehen jedoch jedes Mal verloren, wenn certbot-auto sich selbst aktualisiert, was zu zufälligen Fehlern bei der Erneuerung führen kann. Hier hatten wir einige Situationen, in denen einige Zertifikate aufgrund dieses Problems fast abgelaufen sind. Mehrere Tickets diskutieren dieses Problem im Bug-Tracker von certbot, und das Team erkennt das Problem an, aber es scheint, dass es noch lange dauert, bis das Problem tatsächlich behoben ist.
Wenn Sie daher certbot-auto in einem automatisierten Setup verwenden, ist es wünschenswert, entweder die Selbstaktualisierung von certbot-auto zu verhindern (indem Sie es mit ausführen
--no-self-upgrade
) oder eine Strategie zu implementieren, um sicherzustellen, dass die erforderlichen Plugins bei jeder Aktualisierung von certbot automatisch neu installiert werden.Eine mögliche Lösung, um sicherzustellen, dass die erforderlichen Plugins installiert sind, ist das Hinzufügen eines Wrappers um certbot-auto. Dieser Wrapper könnte im Wesentlichen so aussehen:
Ich habe verfügbar eine vollständigere Version dieses Wrapper gemacht hier ; Der einzige Unterschied zur längeren Version besteht darin, dass sichergestellt wird, dass der Wrapper als Root ausgeführt wird und das
--help
Argument ordnungsgemäß verarbeitet wird .Laden Sie zum Installieren dieses Wrappers das offizielle
certbot-auto
Programm herunter/usr/local/bin/certbot-auto-upstream
und kopieren Sie den Wrapper nach/usr/local/bin/certbot-auto
. Stellen Sie sicher , dass beide Dateien über die entsprechende Berechtigung (chown root:root /usr/local/bin/certbot-auto*
dannchmod 755 /usr/local/bin/certbot-auto*
). Stellen Sie in der Wrapper-Datei sicher, dass die ZeileCERTBOT_PLUGINS="..."
die Liste der tatsächlich benötigten Plugins enthält. Und das ist es. Verwendencertbot-auto
Sie einfach den Befehl wie zuvor und vergessen Sie diecertbot-auto-upstream
Datei.quelle
Wenn Sie unter Ubuntu oder Debian arbeiten, können Sie die folgenden Pakete aus Debian Testing (Buster) herunterladen.
python3-certbot-dns-digitalocean_0.23.0-2_all.deb python3-digitalocean_1.13.2-1_all.deb
quelle
Dies funktionierte für mich auf Ubuntu 18.04 LTS
Siehe diese certbot Ausgabe
quelle
Ich hatte das gleiche Problem, nachdem ich certbot unter OS X aktualisiert hatte. Ich konnte das digitalocean-Plugin nicht mehr anzeigen, selbst nachdem ich es mit neu installiert hatte
pip install certbot-dns-digitalocean
.Die Lösung bestand darin, es zu deinstallieren und dann erneut zu installieren. Ich habe sudo benutzt, um sicher zu gehen:
Es erschien dann ok in der
certbot plugins
Liste.quelle