Lepsza metoda, dzięki innym odpowiedziom za pomoc w dotarciu do tego.
Określ, które wtyczki są obecnie zainstalowane:
# 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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sprawdź, gdzie jest zainstalowany Twój certbot (w moim przypadku certbot-auto):
# find / -name certbot
/opt/eff.org/certbot
...
Wejdź do Virtual Env i zainstaluj wtyczkę
cd /opt/eff.org/certbot/venv
source bin/activate
pip install certbot-dns-google
deactivate
Sprawdź ponownie wtyczki certbota
# 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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Pierwszy bieg
Aby dowiedzieć się, gdzie
certbot
jest zainstalowany. Lubcommand -v certbot
jeśli wolisz.Następnie uruchom
head /usr/bin/certbot
i zanotuj, jakiej wersji Python używa:W moim przypadku używał Python 3.
Zauważyłem z mojego wyjścia pip, że próbował zainstalować pakiet Python 2.7:
Jak więc zmusić pip do zainstalowania pakietów Python 3? Po prostu skopiuj instrukcje tutaj :
Teraz powinieneś mieć
pip3
polecenie, więc uruchom to zamiast tego:A teraz spróbuj ponownie:
źródło
ImportError: cannot import name 'sysconfig'
zainstaluj pakietpython3-distutils
. To i użycie sudo załatwiło sprawę. Mam załadowaną wtyczkę route53.Teraz (lipiec 2018 r.) Powinieneś mieć możliwość korzystania z obu tych opcji
lub
W
sudo
obu przypadkach możesz potrzebować uprawnień.Po zainstalowaniu możesz nie być w stanie zobaczyć wtyczki
certbot plugins
, ale powinieneś być w staniecertbot certonly --dns-digitalocean
dobrze.źródło
apt
icertbot-dns-digitalocean
zpip
i certbot nie był w stanie go znaleźć.pip
jest inny? Mamapt
zainstalowane Pythona 2.7, a następniesudo easy_install pip
(może wymagać apt zainstalować z nich:python-setuptools python-dev build-essential
)Musisz użyć Dockera, aby korzystać z wtyczek dns. Z wtyczek DNS :
źródło
certbot-auto
. Powinieneś używać Dockera tylko wtedy, gdy masz pewność, że wiesz, co robisz i masz dobry powód aby to zrobić. ”Sposób instalowania wtyczek certbot zależy od sposobu zainstalowania samego certbota. Jeśli zainstalowałeś certbota za pomocą menedżera pakietów (apt, rpm, brew ...), powinieneś poszukać kompatybilnych wtyczek certbot w repozytorium tego menedżera pakietów.
Let's Encrypt obsługuje również alternatywną metodę instalacji: wrapper certbot-auto. To opakowanie tworzy prywatną instalację wirtualną Pythona (zwykle w
/opt/eff.org/certbot/venv
) i instaluje certbota w tym katalogu. Przyjemną cechą certbot-auto jest to, że automatycznie aktualizuje on klienta certbot. Główną wadą jest to, że oficjalnie nie obsługuje instalacji wtyczek (to znaczy oprócz czterech wtyczek instalowanych domyślnie).Jest to dość łatwe do obejścia tego ograniczenia, jak to opisano w roztworze Ryan G . Jednak wtyczki zainstalowane za pomocą tej procedury zostaną utracone za każdym razem, gdy sama aktualizacja się aktualizuje, co może spowodować losowe odnawianie błędów. W tym przypadku mieliśmy kilka sytuacji, w których niektóre certyfikaty prawie wygasły z powodu tego problemu. Kilka zgłoszeń omawia ten problem w narzędziu do śledzenia błędów Certbota, a zespół uznaje problem, ale wydaje się, że może to być jeszcze długa droga, zanim problem zostanie naprawiony.
Dlatego, jeśli używasz certbot-auto w automatycznej konfiguracji, pożądane jest, aby albo zapobiec automatycznej aktualizacji certbot-auto (przez uruchomienie go
--no-self-upgrade
), albo wdrożyć strategię, aby zapewnić, że wymagane wtyczki są automatycznie instalowane ponownie przy każdej aktualizacji certbota.Możliwym rozwiązaniem, aby rzeczywiście upewnić się, że wymagane wtyczki są zainstalowane, jest dodanie otoki wokół certbot-auto. To opakowanie może wyglądać następująco:
Mam udostępniane pełniejszą wersję tej owijki tutaj ; jedyną różnicą w przypadku dłuższej wersji jest to, że zapewnia ona, że opakowanie jest uruchamiane jako root, i poprawnie obsługuje
--help
argument.Aby zainstalować to opakowanie, pobierz oficjalny
certbot-auto
program/usr/local/bin/certbot-auto-upstream
i skopiuj to/usr/local/bin/certbot-auto
. Upewnij się, że oba pliki mają odpowiednie uprawnienia (chown root:root /usr/local/bin/certbot-auto*
wtedychmod 755 /usr/local/bin/certbot-auto*
). W pliku opakowania upewnij się, że wierszCERTBOT_PLUGINS="..."
zawiera listę potrzebnych wtyczek. I to wszystko. Po prostu użyjcertbot-auto
polecenia, tak jak wcześniej, i zapomnij ocertbot-auto-upstream
pliku.źródło
Jeśli korzystasz z Ubuntu lub Debiana, możesz pobrać następujące pakiety z testów Debiana (Buster)
python3-certbot-dns-digitalocean_0.23.0-2_all.deb python3-digitalocean_1.13.2-1_all.deb
źródło
To działało dla mnie na Ubuntu 18.04 LTS
Zobacz ten problem z certyfikatem
źródło
Miałem ten sam problem, po zaktualizowaniu certbota w OS XI nie mogłem wyświetlić wtyczki digitalocean, nawet po ponownej instalacji
pip install certbot-dns-digitalocean
.Rozwiązaniem było odinstalowanie go, a następnie ponowna instalacja. Użyłem sudo tylko dla bezpieczeństwa:
Następnie pojawił się na
certbot plugins
liście w porządku .źródło