Metode yang lebih baik, terima kasih atas tanggapan orang lain untuk membantu saya mendapatkan ini.
Tentukan plugin apa yang diinstal saat ini:
# 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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Tentukan di mana certbot Anda (dalam kasus saya certbot-otomatis) diinstal:
# find / -name certbot
/opt/eff.org/certbot
...
Masuk ke Virtual Env dan instal plugin
cd /opt/eff.org/certbot/venv
source bin/activate
pip install certbot-dns-google
deactivate
Verifikasi lagi certbot plugins
# 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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Lari pertama
Untuk mengetahui di mana
certbot
dipasang. Ataucommand -v certbot
jika Anda suka.Kemudian jalankan
head /usr/bin/certbot
dan catat versi Python apa yang digunakannya:Dalam kasus saya, itu menggunakan Python 3.
Saya perhatikan dari keluaran pip saya ia mencoba menginstal paket Python 2.7:
Jadi bagaimana kita mendapatkan pip untuk menginstal paket Python 3? Cukup salin instruksi dari sini :
Sekarang Anda harus memiliki
pip3
perintah, jadi jalankan ini sebagai gantinya:Dan sekarang coba lagi:
sumber
ImportError: cannot import name 'sysconfig'
paket instalasi kesalahan inipython3-distutils
. Itu dan menggunakan sudo berhasil. Saya memiliki plugin route53 yang dimuat.Sekarang (Juli 2018), Anda harus dapat menggunakan keduanya
atau
Anda mungkin perlu
sudo
hak istimewa untuk keduanya.Setelah menginstal Anda mungkin tidak dapat melihat plugin dengan
certbot plugins
, tetapi Anda harus bisacertbot certonly --dns-digitalocean
baik-baik saja.sumber
apt
dancertbot-dns-digitalocean
denganpip
dan certbot tidak dapat menemukannya.pip
berbeda? Sayaapt
menginstal python 2,7 dan kemudiansudo easy_install pip
(mungkin memerlukan apt instalasi ini:python-setuptools python-dev build-essential
)Anda harus menggunakan Docker untuk menggunakan plugin dns. Dari Plugins DNS :
sumber
certbot-auto
Anda hanya boleh menggunakan Docker jika Anda yakin Anda tahu apa yang Anda lakukan dan memiliki alasan yang bagus untuk melakukannya. "Cara Anda menginstal plugin certbot tergantung pada bagaimana Anda menginstal certbot itu sendiri. Jika Anda menginstal certbot menggunakan beberapa manajer paket (apt, rpm, brew ...), maka Anda harus mencari plugin certbot yang kompatibel di repositori manajer paket itu.
Let's Encrypt juga mendukung metode pemasangan alternatif: pembungkus certbot-auto. Wrapper ini membuat instalasi virtual Python pribadi (umumnya di
/opt/eff.org/certbot/venv
), dan menginstal certbot ke direktori itu. Fitur bagus dari certbot-auto adalah secara otomatis menjaga klien certbot tetap mutakhir. Kelemahan utama adalah bahwa ia tidak secara resmi mendukung instalasi plugin (yaitu, selain dari empat plugin yang diinstal secara default).Hal ini cukup mudah untuk bekerja di sekitar keterbatasan ini, seperti yang dijelaskan dalam solusi Ryan G . Namun, plugin yang dipasang melalui prosedur itu akan hilang setiap kali pembaruan certbot-auto sendiri, yang dapat mengakibatkan kegagalan pembaruan acak. Di sini, kami memiliki beberapa situasi di mana beberapa sertifikat hampir mencapai kedaluwarsa karena masalah itu. Beberapa tiket membahas masalah ini pada pelacak bug certbot, dan tim mengakui masalah tersebut, tetapi tampaknya masih jauh sebelum masalah ini benar-benar diperbaiki.
Oleh karena itu, jika menggunakan certbot-auto dalam pengaturan otomatis, diinginkan untuk mencegah pembaruan diri certbot-auto (dengan menjalankannya
--no-self-upgrade
), atau untuk menerapkan beberapa strategi untuk memastikan bahwa plugin yang diperlukan diinstal ulang secara otomatis setiap kali certbot diperbarui.Solusi yang mungkin untuk memastikan bahwa plugin yang diperlukan diinstal adalah dengan menambahkan pembungkus sekitar certbot-auto. Pembungkus itu pada dasarnya bisa terlihat sebagai berikut:
Saya telah menyediakan versi pembungkus yang lebih lengkap di sini ; satu-satunya perbedaan dengan versi yang lebih panjang adalah memastikan pembungkus dijalankan sebagai root, dan itu benar menangani
--help
argumen.Untuk menginstal pembungkus itu, unduh
certbot-auto
program resmi/usr/local/bin/certbot-auto-upstream
, dan salin bungkusnya/usr/local/bin/certbot-auto
. Pastikan kedua file memiliki hak istimewa yang tepat (chown root:root /usr/local/bin/certbot-auto*
, laluchmod 755 /usr/local/bin/certbot-auto*
). Dalam file pembungkus, pastikan barisCERTBOT_PLUGINS="..."
menyertakan daftar plugin yang sebenarnya Anda butuhkan. Dan itu saja. Cukup gunakancertbot-auto
perintah, seperti yang akan Anda lakukan sebelumnya, dan lupakancertbot-auto-upstream
file.sumber
Jika Anda berada di ubuntu atau debian, Anda dapat mengambil paket berikut dari pengujian debian (buster)
python3-certbot-dns-digitalocean_0.23.0-2_all.deb python3-digitalocean_1.13.2-1_all.deb
sumber
Ini bekerja untuk saya di Ubuntu 18,04 LTS
Lihat masalah certbot ini
sumber
Saya memiliki masalah yang sama, setelah saya perbarui certbot pada OS XI tidak dapat membuat plugin digitalocean muncul, bahkan setelah menginstal ulang dengan
pip install certbot-dns-digitalocean
.Solusinya adalah meng-uninstall-nya dan menginstalnya kembali. Saya menggunakan sudo hanya untuk aman:
Kemudian muncul ok dalam
certbot plugins
daftar.sumber