सर्टिफिकेट प्लगइन्स कैसे स्थापित करें?


19

मैंने इस ट्यूटोरियल का अनुसरण करके सर्बोट स्थापित किया :

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx

और अब मैं अपना प्रमाणपत्र स्थापित करना चाहता हूं, लेकिन मुझे dns-digitaloceanप्लगइन की आवश्यकता है :

# certbot certonly --dns-digitalocean
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Could not choose appropriate plugin: The requested dns-digitalocean plugin does not appear to be installed
The requested dns-digitalocean plugin does not appear to be installed

मैंने इसे स्थापित करने की कोशिश की pip:

pip install certbot-dns-digitalocean

लेकिन जाहिरा तौर पर उपयुक्त संस्करण यह "देख" नहीं है।

मैं इसे कैसे ठीक से स्थापित करूं?

जवाबों:


15

बेहतर तरीका है, मेरी मदद करने के लिए दूसरों की प्रतिक्रियाओं के लिए धन्यवाद।

निर्धारित करें कि वर्तमान में कौन से प्लगइन्स इंस्टॉल किए गए हैं:

# 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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

निर्धारित करें कि आपका सर्टिफिकेट (मेरे मामले में सर्टिफिकेट-ऑटो कहां स्थापित है):

# find / -name certbot
/opt/eff.org/certbot
...

वर्चुअल एनवी में जाओ और प्लगइन स्थापित करें

cd /opt/eff.org/certbot/venv
source bin/activate
pip install certbot-dns-google
deactivate

फिर से सर्टिफिकेट प्लगइन्स सत्यापित करें

# 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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

कृपया ध्यान दें कि यह क्रोन के लिए मुश्किल हो सकता है, सर्टिफिकेट-ऑटो संस्करण अपग्रेड आपको "पाइप इंस्टॉल" भाग को फिर से क्रोन करने की आवश्यकता होगी।
रयान

10

प्रथम रन

# type certbot
certbot is hashed (/usr/bin/certbot)

यह पता लगाने के लिए कि कहां certbotस्थापित है। या command -v certbotअगर आप पसंद करते हैं

फिर चलाएं head /usr/bin/certbotऔर नोट करें कि इसका उपयोग पायथन के किस संस्करण में किया गया है:

#!/usr/bin/python3

मेरे मामले में, यह पायथन 3 का उपयोग कर रहा था।

मैंने अपने पिप आउटपुट से देखा कि यह पायथन 2.7 पैकेज को स्थापित करने की कोशिश कर रहा था:

# pip install certbot-dns-digitalocean
Requirement already satisfied: certbot-dns-digitalocean in /usr/local/lib/python2.7/dist-packages

तो हम पायथन 3 पैकेजों को स्थापित करने के लिए पाइप कैसे प्राप्त करेंगे? बस यहां से निर्देश कॉपी करें :

cd /tmp
curl -O https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
rm get-pip.py

अब आपके पास pip3कमांड होनी चाहिए , इसलिए इसके बजाय इसे चलाएं:

pip3 install certbot-dns-digitalocean

और अब फिर से कोशिश करें:

# certbot plugins
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
* dns-digitalocean
Description: Obtain certs using a DNS TXT record (if you are using DigitalOcean
for DNS).
Interfaces: IAuthenticator, IPlugin
Entry point: dns-digitalocean =
certbot_dns_digitalocean.dns_digitalocean:Authenticator

यदि आप इस त्रुटि को ImportError: cannot import name 'sysconfig'स्थापित पैकेज में चलाते हैं python3-distutils। कि और sudo का उपयोग कर चाल चली। मेरे पास रूट 53 प्लगइन लोड है।
डीकेब्लर

8

अब (जुलाई 2018), आपको उपयोग करने में सक्षम होना चाहिए

pip install certbot-dns-digitalocean

या

git clone https://github.com/certbot/certbot.git
cd certbot/certbot-dns-digitalocean/
python setup.py install

आपको इसके sudoलिए विशेषाधिकारों की आवश्यकता हो सकती है ।

स्थापित करने के बाद आप प्लगइन को देखने में सक्षम नहीं हो सकते हैं certbot plugins, लेकिन आपको certbot certonly --dns-digitaloceanबस ठीक करने में सक्षम होना चाहिए ।


1
डटे रहो। फिर आपने सर्टिफिकेट कैसे स्थापित किया? मुझे लगता है कि मेरी समस्या यह थी कि मैंने इसके साथ aptऔर इसके certbot-dns-digitaloceanसाथ ही pipप्रमाणित करने के लिए सर्टिफिकेट स्थापित नहीं किया था।
म्पेन

हां, और मैंने इसे उसी तरह स्थापित किया जैसे आपने किया था। शायद आपके द्वारा स्थापित तरीका pipअलग है? मैंने aptपायथन 2.7 स्थापित किया और फिर sudo easy_install pip(इनमें से एक उपयुक्त अधिष्ठापन की आवश्यकता हो सकती है python-setuptools python-dev build-essential) :
एम। डेविस

3

Dns प्लगइन्स का उपयोग करने के लिए आपको Docker का उपयोग करना होगा। से डीएनएस प्लगइन्स :

ये प्लगइन्स अभी भी कई वितरणों द्वारा पैक किए जाने की प्रक्रिया में हैं और वर्तमान में इसके साथ इंस्टॉल नहीं किए जा सकते हैं certbot-auto। यदि, हालांकि, आप स्वयं प्रमाण पत्र स्थापित करने में सहज हैं, तो आप इन प्लगइन्स को डॉकर के साथ चला सकते हैं ।


Doc यह भी कहता है : "अधिकांश उपयोगकर्ताओं को ऑपरेटिंग सिस्टम पैकेजों का उपयोग करना चाहिए (सर्टिफिकेट पर निर्देश देखें)। या, फॉलबैक के रूप में certbot-auto। आपको केवल डॉकर का उपयोग करना चाहिए यदि आप सुनिश्चित हैं कि आप जानते हैं कि आप क्या कर रहे हैं और एक अच्छा कारण है। ऐसा करने के लिए।"
टॉटर

2

आपके द्वारा प्रमाणित किए गए सर्टिफिकेट प्लगइन्स को स्थापित करने का तरीका इस बात पर निर्भर करता है कि आपने कैसे सर्टिफिकेट स्थापित किया है। यदि आपने कुछ पैकेज मैनेजर (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फ़ाइल के बारे में भूल जाएं ।


1

यदि आप उबंटू या डेबियन हैं, तो आप डेबियन परीक्षण (बस्टर) से निम्नलिखित पैकेज ले सकते हैं

python3-certbot-dns-digitalocean_0.23.0-2_all.deb python3-digitalocean_1.13.2-1_all.deb



0

मेरे पास एक ही समस्या थी, जब मैंने ओएस एक्सआई पर सर्टिफिकेट को अपडेट किया था, तब तक इसे फिर से स्थापित करने के बाद भी डिजिटल प्लगइन प्राप्त नहीं कर सका pip install certbot-dns-digitalocean

इसका समाधान यह था कि इसे अनइंस्टॉल किया जाए और फिर इसे फिर से स्थापित किया जाए। मैं सूदो का इस्तेमाल सिर्फ सुरक्षित होने के लिए करता था:

sudo pip uninstall certbot-dns-digitalocean 
sudo pip install certbot-dns-digitalocean

यह तब certbot pluginsसूची में ठीक दिखाई दिया ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.