वर्तमान में मैन्युअल मोड में सर्टिफिकेट लेट्सएनेट क्रिप्ट क्लाइंट के साथ डीएनएस सत्यापन करना संभव है। स्वचालन भी संभव है (नीचे देखें)।
मैनुअल प्लगइन
आप या तो मैन्युअल सत्यापन कर सकते हैं - मैनुअल प्लगइन के साथ।
certbot -d bristol3.pki.enigmabridge.com --manual --preferred-challenges dns certonly
तब प्रमाणपत्रबोट आपको सत्यापन के लिए आगे बढ़ने के लिए डोमेन के लिए एक TXT रिकॉर्ड मैन्युअल रूप से अपडेट करने के लिए एक निर्देश प्रदान करेगा।
Please deploy a DNS TXT record under the name
_acme-challenge.bristol3.pki.enigmabridge.com with the following value:
667drNmQL3vX6bu8YZlgy0wKNBlCny8yrjF1lSaUndc
Once this is deployed,
Press ENTER to continue
एक बार जब आप DNS रिकॉर्ड अपडेट कर लेते हैं, तो Enter दबाएं, सर्टिफिकेट जारी रहेगा और यदि LetsEncrypt CA चुनौती का सत्यापन करता है, तो प्रमाणपत्र सामान्य रूप से जारी किया जाता है।
अंतःक्रियात्मकता को कम करने और सर्टिफिकेट के सवालों के जवाब देने के लिए आप अधिक विकल्पों के साथ एक कमांड का उपयोग कर सकते हैं। ध्यान दें कि मैनुअल प्लगइन अभी तक गैर-इंटरैक्टिव मोड का समर्थन नहीं करता है।
certbot --text --agree-tos --email you@example.com -d bristol3.pki.enigmabridge.com --manual --preferred-challenges dns --expand --renew-by-default --manual-public-ip-logging-ok certonly
नवीनीकरण मैन्युअल प्लगइन के साथ काम नहीं करता है क्योंकि यह गैर-इंटरैक्टिव मोड में चलता है। आधिकारिक प्रमाण पत्र प्रलेखन पर अधिक जानकारी ।
अपडेट: मैनुअल हुक
नए सर्बोट संस्करण में आप हुक , जैसे --manual-auth-hook
, का उपयोग कर सकते हैं --manual-cleanup-hook
। हुक कार्य निष्पादित करने के लिए सर्टिफिकेट द्वारा निष्पादित बाहरी स्क्रिप्ट हैं।
जानकारी पर्यावरण चर में पारित की जाती है - जैसे, मान्य करने के लिए डोमेन, चुनौती टोकन। Vars: CERTBOT_DOMAIN
, CERTBOT_VALIDATION
, CERTBOT_TOKEN
।
certbot certonly --manual --preferred-challenges=dns --manual-auth-hook /path/to/dns/authenticator.sh --manual-cleanup-hook /path/to/dns/cleanup.sh -d secure.example.com
आप अपना स्वयं का हैंडलर लिख सकते हैं या पहले से मौजूद का उपयोग कर सकते हैं, क्लाउडफ्लेयर डीएनएस के लिए कई उपलब्ध हैं, उदाहरण के लिए।
आधिकारिक सर्बोट हुक पर अधिक जानकारी प्रलेखन
स्वचालन, नवीनीकरण, स्क्रिप्टिंग
यदि आप DNS चुनौतियों को स्वचालित करना चाहते हैं, तो वर्तमान में यह वैनिला सर्टिफिकेट के साथ संभव नहीं है। अद्यतन: सर्टिफिकेट हुक के साथ कुछ स्वचालन संभव है।
इस प्रकार हमने एक सरल प्लगइन बनाया जो DNS स्वचालन के साथ स्क्रिप्टिंग का समर्थन करता है। यह सर्टबोट-एक्सटर्नल-ऑर्ट के रूप में उपलब्ध है ।
pip install certbot-external-auth
यह DNS, HTTP, TLS-SNI सत्यापन विधियों का समर्थन करता है। आप इसे या तो हैंडलर मोड या JSON आउटपुट मोड में उपयोग कर सकते हैं।
हैंडलर मोड
हैंडलर मोड में, सर्टिफिकेट + प्लगइन बाहरी हुक (एक प्रोग्राम, शेल स्क्रिप्ट, अजगर, ...) को वैलेडेशन और इंस्टॉलेशन करने के लिए कहता है। व्यवहार में आप एक साधारण हैंडलर / शेल स्क्रिप्ट लिखते हैं जिसे इनपुट तर्क मिलते हैं - डोमेन, टोकन और DNS में परिवर्तन। जब हैंडलर खत्म हो जाता है, तो सर्टिफिकेट हमेशा की तरह सत्यापन के साथ आगे बढ़ता है।
यह आपको एक अतिरिक्त लचीलापन देता है, नवीकरण भी संभव है।
हैंडलर मोड भी डीहाइड्रेटेड DNS हुक (पूर्व letencrypt.sh) के साथ संगत है । आम प्रदाताओं (जैसे, CloudFlare, GoDaddy, AWS) के लिए पहले से ही कई DNS हुक हैं। भंडार में व्यापक उदाहरण और उदाहरण हैंडलर के साथ एक README है।
निर्जलित DNS हुक के साथ उदाहरण :
certbot \
--text --agree-tos --email you@example.com \
--expand --renew-by-default \
--configurator certbot-external-auth:out \
--certbot-external-auth:out-public-ip-logging-ok \
-d "bristol3.pki.enigmabridge.com" \
--preferred-challenges dns \
--certbot-external-auth:out-handler ./dehydrated-example.sh \
--certbot-external-auth:out-dehydrated-dns \
run
JSON मोड
एक अन्य प्लगइन मोड JSON मोड है। यह प्रति पंक्ति एक JSON ऑब्जेक्ट का उत्पादन करता है। यह एक अधिक जटिल एकीकरण को सक्षम करता है - उदाहरण के लिए, Ansible या कुछ परिनियोजन प्रबंधक सर्टिफिकेट कह रहा है। संचार STDOUT और STDIN के माध्यम से किया जाता है। Cerbot सत्यापन करने के लिए डेटा के साथ JSON ऑब्जेक्ट बनाता है, जैसे,
certbot \
--text --agree-tos --email you@example.com \
--expand --renew-by-default \
--configurator certbot-external-auth:out \
--certbot-external-auth:out-public-ip-logging-ok \
-d "bristol3.pki.enigmabridge.com" \
--preferred-challenges dns \
certonly 2>/dev/null
{"cmd": "perform_challenge", "type": "dns-01", "domain": "bs3.pki.enigmabridge.com", "token": "3gJ87yANDpmuuKVL2ktfQ0_qURQ3mN0IfqgbTU_AGS4", "validation": "ejEDZXYEeYHUxqBAiX4csh8GKkeVX7utK6BBOBshZ1Y", "txt_domain": "_acme-challenge.bs3.pki.enigmabridge.com", "key_auth": "3gJ87yANDpmuuKVL2ktfQ0_qURQ3mN0IfqgbTU_AGS4.tRQM98JsABZRm5-NiotcgD212RAUPPbyeDP30Ob_7-0"}
एक बार DNS अपडेट होने के बाद, कॉलर यह प्रमाणित करने के लिए सर्टिफिकेट के STDIN को नई-लाइन चरित्र भेजता है कि यह सत्यापन के साथ जारी रह सकता है।
यह केंद्रीय प्रबंधन सर्वर से स्वचालन और प्रमाणपत्र प्रबंधन को सक्षम करता है। इंस्टालेशन के लिए आप SSH के ऊपर सर्टिफिकेट तैनात कर सकते हैं।
अधिक जानकारी के लिए कृपया सर्टिफिकेट-बाहरी-बाहरी GitHub पर रीडमी और उदाहरण देखें ।
EDIT: DNS सत्यापन समस्या और प्लगइन उपयोग का वर्णन करने वाला एक नया ब्लॉग पोस्ट भी है ।
EDIT: हम वर्तमान में Ansible 2-चरणीय सत्यापन पर काम करते हैं, जल्द ही बंद हो जाएगा।