Il modo in cui installi i plugin certbot dipende da come hai installato certbot stesso. Se hai installato certbot usando un gestore di pacchetti (apt, rpm, brew ...), dovresti cercare plugin di certbot compatibili nel repository di quel gestore di pacchetti.
Let's Encrypt supporta anche un metodo di installazione alternativo: il wrapper certbot-auto. Questo wrapper crea un'installazione virtuale privata di Python (generalmente in /opt/eff.org/certbot/venv
) e installa certbot in quella directory. Una caratteristica interessante di certbot-auto è che mantiene automaticamente aggiornato il client certbot. Uno svantaggio principale è che non supporta ufficialmente l'installazione di plug-in (ovvero, a parte quattro plug-in installati per impostazione predefinita).
E 'abbastanza facile da aggirare questa limitazione, come descritto nella soluzione di Ryan G . Tuttavia, i plug-in installati tramite tale procedura andranno persi ogni volta che certbot-auto si aggiorna automaticamente, il che può causare errori di rinnovo casuali. Qui, abbiamo avuto alcune situazioni in cui alcuni certificati hanno quasi raggiunto la scadenza a causa di quel problema. Diversi ticket discutono questo problema sul tracker dei bug di certbot e il team riconosce il problema, ma sembra che potrebbe essere ancora molto prima che il problema venga effettivamente risolto.
Pertanto, se si utilizza certbot-auto in una configurazione automatizzata, è consigliabile prevenire l'auto-aggiornamento di certbot-auto (eseguendolo con --no-self-upgrade
) o implementare una strategia per garantire che i plug-in richiesti vengano reinstallati automaticamente ogni volta che si aggiorna certbot.
Una possibile soluzione per garantire effettivamente l'installazione dei plug-in richiesti è l'aggiunta di un wrapper attorno a certbot-auto. Quel wrapper potrebbe essenzialmente apparire come segue:
#!/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" "$@"
Ho reso disponibile una versione più completa di quel wrapper qui ; le uniche differenze con la versione più lunga è che garantisce che il wrapper venga eseguito come root e gestisce correttamente l' --help
argomento.
Per installare quel wrapper, scarica il certbot-auto
programma ufficiale /usr/local/bin/certbot-auto-upstream
e copia il wrapper in /usr/local/bin/certbot-auto
. Assicurarsi che entrambi i file dispongano dei privilegi appropriati ( chown root:root /usr/local/bin/certbot-auto*
, quindi chmod 755 /usr/local/bin/certbot-auto*
). Nel file wrapper, assicurati che la riga CERTBOT_PLUGINS="..."
includa l'elenco dei plugin effettivamente necessari. E questo è tutto. Usa semplicemente il certbot-auto
comando, come avresti fatto in precedenza, e dimentica il certbot-auto-upstream
file.