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:
#!/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" "$@"
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*
, lalu chmod 755 /usr/local/bin/certbot-auto*
). Dalam file pembungkus, pastikan baris CERTBOT_PLUGINS="..."
menyertakan daftar plugin yang sebenarnya Anda butuhkan. Dan itu saja. Cukup gunakan certbot-auto
perintah, seperti yang akan Anda lakukan sebelumnya, dan lupakan certbot-auto-upstream
file.