Certbot eklentilerini kurma şekliniz, certbot'un kendisini nasıl kurduğunuza bağlıdır. Certbot'u bir paket yöneticisi (apt, rpm, brew ...) kullanarak kurduysanız, o paket yöneticisinin deposunda uyumlu certbot eklentileri aramalısınız.
Şifrelemenin alternatif bir kurulum yöntemini de destekleyelim: certbot-auto wrapper. Bu sarmalayıcı özel bir Python sanal yüklemesi (genellikle içinde /opt/eff.org/certbot/venv
) oluşturur ve certbot'u bu dizine yükler. Certbot-auto'un güzel bir özelliği, certbot istemcisini otomatik olarak güncel tutmasıdır. Büyük bir dezavantajı, eklenti kurulumunu resmi olarak desteklememesidir (varsayılan olarak yüklü dört eklentinin yanı sıra).
Ryan G'nin çözümünde açıklandığı gibi bu sınırlamaya geçici bir çözüm bulmak yeterince kolaydır . Ancak, certbot-auto kendini her güncellediğinde bu yordam aracılığıyla yüklenen eklentiler kaybolur ve bu da rastgele yenileme hatalarına neden olabilir. Burada, bu sorun nedeniyle bazı sertifikaların neredeyse sona ermiş olduğu birkaç durumumuz var. Birkaç bilet bu sorunu certbot'un hata izleyicisinde tartışıyor ve ekip sorunu kabul ediyor, ancak sorunun gerçekten düzeltilmesinden önce çok yol olabileceği görülüyor.
Bu nedenle, otomatik bir kurulumda certbot-auto kullanılıyorsa, certbot-auto'un kendi kendini güncellemesini (çalıştırarak --no-self-upgrade
) önlemek ya da certbot her güncellendiğinde gerekli eklentilerin otomatik olarak yeniden yüklenmesini sağlamak için bir strateji uygulamak arzu edilir.
Gerçekten de gerekli eklentilerin yüklendiğinden emin olmak için olası bir çözüm, certbot-auto'un etrafına bir sargı eklemektir. Bu sargı aslında aşağıdaki gibi görünebilir:
#!/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" "$@"
Bu paketleyicinin daha eksiksiz bir sürümünü burada kullanıma sundum ; daha uzun versiyonla tek fark, sargının kök olarak çalıştırılmasını sağlaması ve --help
argümanı düzgün bir şekilde işlemesidir .
Bu sarmalayıcıyı yüklemek için resmi certbot-auto
programı indirin /usr/local/bin/certbot-auto-upstream
ve sarmalayıcıyı kopyalayın /usr/local/bin/certbot-auto
. Her iki dosyanın da uygun ayrıcalıklara sahip olduğundan emin olun ( chown root:root /usr/local/bin/certbot-auto*
, sonra chmod 755 /usr/local/bin/certbot-auto*
). Sarıcı dosyasında, satırın CERTBOT_PLUGINS="..."
gerçekten ihtiyacınız olan eklentilerin listesini içerdiğinden emin olun . Ve bu kadar. certbot-auto
Daha önce yaptığınız gibi komutu kullanın ve certbot-auto-upstream
dosyayı unutun .