आपके द्वारा प्रमाणित किए गए सर्टिफिकेट प्लगइन्स को स्थापित करने का तरीका इस बात पर निर्भर करता है कि आपने कैसे सर्टिफिकेट स्थापित किया है। यदि आपने कुछ पैकेज मैनेजर (apt, rpm, brew ...) का उपयोग करके सर्टिफिकेट स्थापित किया है, तो आपको उस पैकेज मैनेजर के रिपॉजिटरी में संगत सर्टिफिकेट प्लगइन्स की तलाश करनी चाहिए।
आइए एन्क्रिप्ट करें भी एक वैकल्पिक स्थापना विधि का समर्थन करें: सर्टिफिकेट-ऑटो आवरण। यह आवरण एक निजी पायथन वर्चुअल इंस्टॉलेशन (आमतौर पर /opt/eff.org/certbot/venv
) बनाता है , और उस निर्देशिका में सर्टिफिकेट स्थापित करता है। सर्पोट-ऑटो की एक अच्छी विशेषता यह है कि यह स्वतः सर्टिफिकेट क्लाइंट को अप-टू-डेट रखता है। एक प्रमुख नकारात्मक पहलू यह है कि यह आधिकारिक तौर पर प्लगइन्स इंस्टॉलेशन का समर्थन नहीं करता है (अर्थात, डिफ़ॉल्ट रूप से इंस्टॉल किए गए चार प्लगइन्स से अलग)।
इस सीमा के आसपास काम करना काफी आसान है, जैसा कि रेयान जी के समाधान में वर्णित है । हालांकि, उस प्रक्रिया के माध्यम से इंस्टॉल किए गए प्लगइन्स हर बार सर्टिफिकेट-ऑटो अपडेट से खुद को खो देंगे, जिसके परिणामस्वरूप यादृच्छिक नवीनीकरण विफल हो सकते हैं। यहां, हमारे पास कुछ परिस्थितियां हैं जहां कुछ प्रमाणपत्र लगभग उस मुद्दे के कारण समाप्ति पर पहुंच गए। कई टिकट सर्टिफिकेट के बग ट्रैकर पर इस मुद्दे पर चर्चा करते हैं, और टीम समस्या को स्वीकार करती है, लेकिन ऐसा लगता है कि यह मुद्दा वास्तव में तय होने से पहले अभी भी एक लंबा रास्ता तय कर सकता है।
इसलिए, यदि किसी स्वचालित सेटअप में सर्टिफिकेट-ऑटो का उपयोग किया जाता है, तो सर्टिफिकेट-ऑटो के सेल्फ अपडेट को ( --no-self-upgrade
या इसके साथ चलाकर ) रोकने के लिए या तो यह सुनिश्चित करने के लिए वांछनीय है कि आवश्यक प्लगइन्स को स्वचालित रूप से अपडेट किए जाने के बाद कुछ प्लगइन्स को स्वचालित रूप से पुनर्स्थापित किया जाए।
वास्तव में यह सुनिश्चित करने के लिए कि प्लगइन्स को आवश्यक प्लग-इन स्थापित किया गया है, का एक संभावित समाधान सर्टिफिकेट-ऑटो के चारों ओर एक आवरण जोड़ना है। वह आवरण आवश्यक रूप से अनुसरण कर सकता है:
#!/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" "$@"
मैंने उस रैपर का अधिक पूर्ण संस्करण यहां उपलब्ध कराया है ; लंबे संस्करण के साथ एकमात्र अंतर यह है कि यह सुनिश्चित करता है कि आवरण को रूट के रूप में चलाया जा रहा है, और यह ठीक से --help
तर्क को संभालता है।
उस आवरण को स्थापित करने के certbot-auto
लिए /usr/local/bin/certbot-auto-upstream
, आधिकारिक कार्यक्रम को डाउनलोड करें और आवरण को कॉपी करें /usr/local/bin/certbot-auto
। सुनिश्चित करें कि दोनों फाइलों में उचित विशेषाधिकार ( chown root:root /usr/local/bin/certbot-auto*
, तब chmod 755 /usr/local/bin/certbot-auto*
) हैं। आवरण फ़ाइल में, सुनिश्चित करें कि लाइन में CERTBOT_PLUGINS="..."
उन प्लगइन्स की सूची शामिल है जिनकी आपको वास्तव में आवश्यकता है। और बस। बस certbot-auto
कमांड का उपयोग करें , जैसा कि आपने पहले किया होगा, और certbot-auto-upstream
फ़ाइल के बारे में भूल जाएं ।