
एक मान्य SSL प्रमाणपत्र श्रृंखला बनाने में आपकी सहायता करने के लिए ओपन सोर्स टूल।
विवरण • उपयोग कैसे करें • पैरामीटर • यह कैसे काम करता है • आवश्यकताएँ • अन्य • लाइसेंस
यह एक मुक्त स्रोत उपकरण है जो आपको एक मान्य SSL प्रमाणपत्र श्रृंखला बनाने में मदद करता है। यह अधूरी श्रृंखला को ठीक करने और सभी लापता CA प्रमाणपत्रों को डाउनलोड करने में भी आपकी मदद कर सकता है। आप रिमोट सर्वर से सभी प्रमाणपत्र डाउनलोड कर सकते हैं और अपनी प्रमाणपत्र श्रृंखला सही पाएँ।
यह सरल है:
# Clone this repository
git clone https://github.com/trimstray/mkchain
# Go into the repository
cd mkchain
# Install
./setup.sh install
# Run the app
mkchain -i /data/certs -o /data/chain.crt
bin/mkchainका सिमलिंक/usr/local/binमें रखा जाता है- मैन पेज
/usr/local/man/man8में रखा जाता है
निम्नलिखित विकल्प प्रदान करता है:
Usage:
mkchain <option|long-option>
Examples:
mkchain --in Root.crt --in Intermediate1.crt --in Server.crt --out bundle_chain_certs.crt
mkchain --in /tmp/certs --out bundle_chain_certs.crt --with-root
mkchain -i Server.crt -o bundle_chain_certs.crt
mkchain -i https://incomplete-chain.badssl.com/ --with-root
Options:
--help show this message
--debug displays information on the screen (debug mode)
-i, --in add certificates to merge (file, multiple files, directory with ssl certificates
or remote domain)
-o, --out saves the result (chain) to a file
--with-root add root certificate to certificates chain
-o|--out- इस पैरामीटर के बिनाmkchainआउटपुट श्रृंखला कोmkchain/chains/निर्देशिका में सहेजता है।
इसे पढ़ने से पहले, कृपया SSL प्रमाणपत्र श्रृंखला के बारे में लेख देखें।
आइए ssllabs प्रमाणपत्र श्रृंखला से शुरू करते हैं। वे mkchain के साथ वितरित किए जाते हैं और example/ssllabs.com निर्देशिका में पाए जा सकते हैं, जिसमें अतिरिक्त रूप से all निर्देशिका (श्रृंखला को जोड़ने के लिए आवश्यक सभी प्रमाणपत्र युक्त) और server_certificate निर्देशिका (केवल सर्वर प्रमाणपत्र) शामिल हैं।
ssllabs.com डोमेन के लिए सही श्रृंखला (openssl कमांड का परिणाम):
Certificate chain
0 s:/C=US/ST=California/L=Redwood City/O=Qualys, Inc./CN=ssllabs.com
i:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for authorized use only/CN=Entrust Certification Authority - L1K
1 s:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2012 Entrust, Inc. - for authorized use only/CN=Entrust Certification Authority - L1K
i:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2009 Entrust, Inc. - for authorized use only/CN=Entrust Root Certification Authority - G2
2 s:/C=US/O=Entrust, Inc./OU=See www.entrust.net/legal-terms/OU=(c) 2009 Entrust, Inc. - for authorized use only/CN=Entrust Root Certification Authority - G2
i:/C=US/O=Entrust, Inc./OU=www.entrust.net/CPS is incorporated by reference/OU=(c) 2006 Entrust, Inc./CN=Entrust Root Certification Authority
उपरोक्त कोड एक पूर्ण श्रृंखला प्रस्तुत करता है जिसमें शामिल हैं:
पहचान प्रमाणपत्र (सर्वर प्रमाणपत्र)
ssllabs.com के लिए Entrust Certification Authority - L1K द्वारा जारी किया गया
मध्यवर्ती प्रमाणपत्र
Entrust Certification Authority - L1K के लिए Entrust Root Certification Authority - G2 द्वारा जारी किया गया
मध्यवर्ती प्रमाणपत्र
Entrust Root Certification Authority - G2 के लिए Entrust Root Certification Authority द्वारा जारी किया गया
रूट प्रमाणपत्र (स्व-हस्ताक्षरित प्रमाणपत्र)
Entrust Root Certification Authority के लिए Entrust Root Certification Authority द्वारा जारी किया गया
इस परिदृश्य में, हम सभी वितरित प्रमाणपत्रों को श्रृंखलाबद्ध करेंगे। उपकरण चलाने का उदाहरण:
इस परिदृश्य में, हम केवल सर्वर प्रमाणपत्र का उपयोग करते हैं और इसका उपयोग शेष आवश्यक प्रमाणपत्रों को प्राप्त करने के लिए करते हैं। फिर, ऊपर की तरह, हम सभी प्रदान किए गए प्रमाणपत्रों को जोड़ेंगे। उपकरण चलाने का उदाहरण:
एक मान्य श्रृंखला बनाने के लिए, आपको उपकरण को सभी आवश्यक प्रमाणपत्र प्रदान करने होंगे (यदि आप -i|--in पैरामीटर के लिए निर्देशिका सेट करते हैं)। ये होंगे:
यह बहुत महत्वपूर्ण है क्योंकि इसके बिना आप श्रृंखला के आरंभ और अंत का निर्धारण नहीं कर पाएंगे।
यदि आप केवल एक प्रमाणपत्र फ़ाइल को
-i|--inमान के रूप में सेट करते हैं, तोmkchainस्वचालित रूप से सभी आवश्यक प्रमाणपत्र डाउनलोड करता है।
हालाँकि, यदि आप mkchain के साथ उत्पन्न करने के बाद उत्पन्न श्रृंखला के अंदर देखते हैं, तो आपको वहाँ रूट प्रमाणपत्र नहीं मिलेगा।
क्यों? क्योंकि स्व-हस्ताक्षरित रूट प्रमाणपत्रों को वेब सर्वर कॉन्फ़िगरेशन में शामिल करने की आवश्यकता/चाहिए नहीं है। वे कोई उद्देश्य नहीं रखते (क्लाइंट हमेशा उन्हें अनदेखा करेंगे) और वे हल्का प्रदर्शन (विलंबता) दंड लगाते हैं क्योंकि वे SSL हैंडशेक का आकार बढ़ाते हैं।
यदि आप प्रमाणपत्र श्रृंखला में एक रूट प्रमाणपत्र जोड़ना चाहते हैं, तो उपयोगिता को --with-root पैरामीटर के साथ कॉल करें।
mkchain दो प्रमाणन पथों के उपयोग की अनुमति देता है:
प्रमाणपत्रों की श्रृंखला उत्पन्न करते समय, mkchain प्रमाणपत्रों के बारे में जानकारी के साथ टिप्पणियाँ प्रदर्शित करता है, जिसमें कोई भी त्रुटि शामिल है।
यहाँ सभी संभावनाओं की सूची है:
यह संदेश तब प्रदर्शित होता है जब सर्वर प्रमाणपत्र की अनुपस्थिति होती है जो श्रृंखला की शुरुआत है। यह एक अद्वितीय मामला है क्योंकि इस स्थिति में mkchain केवल यह जानकारी प्रदर्शित करके अपना संचालन समाप्त करता है। सर्वर प्रमाणपत्र एकमात्र प्रमाणपत्र है जो सही ढंग से श्रृंखला बनाने के लिए आवश्यक है। इस प्रमाणपत्र के बिना, सही श्रृंखला नहीं बनाई जाएगी।
यहाँ विपरीत स्थिति है - संदेश तब प्रदर्शित होता है जब एक मान्य सर्वर प्रमाणपत्र पाया जाता है।
यह संदेश तब प्रकट होता है जब दो मध्यवर्ती प्रमाणपत्रों में से पहला नहीं मिलता है। यह जानकारी स्पष्ट रूप से दूसरे मध्यवर्ती प्रमाणपत्र की अनुपस्थिति निर्दिष्ट नहीं करती है और दूसरी ओर यह निर्धारित करने की अनुमति देती है कि जिस मध्यवर्ती प्रमाणपत्र पर सर्वर प्रमाणपत्र हस्ताक्षरित किया गया था वह मौजूद है या नहीं। इसके अतिरिक्त, यह प्रदर्शित हो सकता है यदि दूसरा मध्यवर्ती प्रमाणपत्र वितरित किया गया है।
ऊपर के समान, हालाँकि यह दूसरे मध्यवर्ती प्रमाणपत्र से संबंधित है। हालाँकि, दूसरे प्रमाणन पथ का उपयोग करके श्रृंखला को सही ढंग से बनाना संभव है, उदाहरण के लिए पहले मध्यवर्ती प्रमाणपत्र का उपयोग करके और दूसरे को मुख्य प्रमाणपत्र से बदलकर।
यह संदेश इंगित करता है कि आवश्यक मध्यवर्ती प्रमाणपत्रों में से एक या सभी गायब हैं और रूट प्रमाणपत्र की अनुपस्थिति में प्रदर्शित होता है।
यह संदेश मान्य मध्यवर्ती प्रमाणपत्रों की संख्या इंगित करता है।
रूट प्रमाणपत्र की कमी को चेतावनी के रूप में माना जाता है। बेशक, सर्वर साइड पर प्रमाणपत्र कॉन्फ़िगर करते समय, रूट प्रमाणपत्र संलग्न करने की अनुशंसा नहीं की जाती है, लेकिन यदि आप इसे mkchain के साथ बनाते हैं, तो यह श्रृंखला को अधूरा मानता है और श्रृंखला के गलत निर्माण के बारे में जानकारी प्रदर्शित करता है।
यह संदेश त्रुटि या CN फ़ील्ड की कमी के बारे में सूचित नहीं करता है जो कुछ प्रमाणपत्रों के साथ हो सकता है (example/google.com देखें)। Common Name फ़ील्ड प्रमाणपत्र से जुड़े होस्ट नाम की पहचान करता है। RFC3280 में जारीकर्ता DN के लिए CN होना आवश्यक नहीं है। अधिकांश CA जारीकर्ता DN में CN शामिल करते हैं, लेकिन कुछ नहीं करते, जैसे यह Equifax CA।
mkchain चलाने से पहले बाहरी उपयोगिताओं को स्थापित करने की आवश्यकता है:
यह उपकरण इसके साथ काम करता है:
MacOS/FreeBSD:
pkg install getopt)greadlink के साथ भी काम करता है (homebrew के माध्यम से स्थापित)यह देखें।
यह देखें।
GPLv3 : http://www.gnu.org/licenses/
मुफ्त सॉफ्टवेयर, हाँ!