Windows के आउट-ऑफ़-द-बॉक्स पर भरोसा करने वाले प्रमाण पत्र को Gnu / Linux कैसे बनाया जाए?


11

इस SSL जाँच के अनुसार एक टूटी हुई एसएसएल श्रृंखला के साथ एक सर्वर है :

एसएसएल जांच रिपोर्ट

मुझे पता है कि यह एक ऐसी समस्या है जिसे सर्वर पर ही हल किया जाना चाहिए , लेकिन कभी-कभी इसे ठीक करना मुश्किल होता है (मैं सर्वर का व्यवस्थापक नहीं हूं)।

बात यह है कि, क्रोम / मोज़िला / एज विंडोज पर वैसे भी साइट प्रमाण पत्र पर भरोसा करते हैं :

यहाँ छवि विवरण दर्ज करें

हालाँकि, किसी Gnu / Linux परिनियोजन (Ubuntu 18.04 में Docker) में प्रमाणपत्र विश्वसनीय नहीं है :

curl: (60) SSL certificate problem: unable to get local issuer certificate

मैंने कोशिश की update-ca-certificatesऔर यहां तक ​​कि ग्लोबालसिन रूट प्रमाणपत्र भी आयात किया। update-ca-certificatesउस मामले में एक डुप्लीकेट प्रमाण पत्र की सूचना दी। वैसे भी, कुछ भी काम नहीं करता है।

प्रजनन कैसे करें?

डॉकर का उपयोग करना:

docker run -it ubuntu:18.04

# within container:
apt-get update
apt-get -y install curl
curl https://betriebsheft.vog.it  # <---- "unable to get local issuer certificate"

मैं इस प्रमाणपत्र पर Gnu / Linux पर कैसे भरोसा कर सकता हूं?

पुनश्च: एक ही प्रमाण पत्र दूसरे सर्वर पर सही ढंग से तैनात किया गया है


डाउनवोट क्यों?
जी

1
मैं इस प्रश्न को ऑफ-टॉपिक के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि ओपी कुछ पूछ रहा है जो वह खुद को प्रभावित नहीं कर सकता है। उन्होंने कहा कि वह किसी भी सर्वर-साइड को संशोधित नहीं कर सकते हैं , इसलिए यह संभवतः मेरे विचार से सुपरयुजर का है, क्योंकि यह कोई समाधान क्लाइंट-साइड होने की समस्या का वर्णन करता है।
LinuxSecurityFreak

2
मैं विशेष रूप से क्लाइंट-साइड समाधान के लिए कह रहा हूं । मैं सर्वर को प्रभावित नहीं कर सकता, लेकिन क्लाइंट O / S (उबंटू) पर मेरा पूरा नियंत्रण है और मैं चाहता हूं कि यह विशिष्ट O / S इंस्टॉलेशन अन्य O / S (Windows) की तरह ही सर्टिफिकेट पर भरोसा करे। यह दूसरों के लिए HTTPS साइट को ठीक करने के बारे में नहीं है।
उडो जी


1
आप सर्वर को नियंत्रित नहीं करते हैं, लेकिन आप अभी भी उस व्यक्ति को समस्या की रिपोर्ट कर सकते हैं जो सर्वर को नियंत्रित करता है।
माइकल हैम्पटन

जवाबों:


11

इसके लिए असली फिक्स यह सुनिश्चित करना है कि आपका सर्वर श्रृंखला में सभी प्रमाणपत्र प्रस्तुत करता है, न कि केवल अंत-इकाई (सर्वर) प्रमाण पत्र।

अपने सर्वर व्यवस्थापक को RFC 5246 खंड 7.4.2 पर इंगित करें जो स्पष्ट रूप से बताता है कि यह संदेश क्लाइंट को सर्वर की प्रमाणपत्र श्रृंखला देता है।


यदि आपका व्यवस्थापक किसी कारण से मना करता है / नहीं कर सकता है, तो आपका वैकल्पिक विकल्प curlविकृत हैंडशेक के साथ काम करना और प्राप्त करना है।

कर्ल मेलिंग सूची के एक संदेश के अनुसार:

क्या कोई पुष्टि कर सकता है कि CURL मध्यवर्ती प्रमाणपत्र का समर्थन करता है (या नहीं)?

हाँ यह करता है। सभी ca प्रमाणपत्र में मूल तक एक प्रमाणपत्र श्रृंखला है। कर्ल के साथ आपके द्वारा उपयोग की जाने वाली सीए बंडल को पूरी श्रृंखला के लिए सीट्स से युक्त होना चाहिए।

/ daniel.haxx.se

आपको रूट CA और सभी मध्यवर्ती प्रमाणपत्रों को एक बंडल में जोड़ने में सक्षम होना चाहिए और विकल्प curlका उपयोग करके इसे इंगित करना चाहिए --cacert <file>

जैसे-जैसे आपके ब्राउज़र काम करते हैं, आप वहां से सही CA प्रमाणपत्र एक्सेस कर सकते हैं। प्रमाणपत्र टैब पर (प्रत्येक ब्राउज़र के लिए अलग है, लेकिन मुझे यकीन है कि आप यह समझ लेंगे कि एक बाहर है), प्रमाण पत्र श्रृंखला देखें। रूट सीए प्रथम ग्लोबसलाइन रूट सीए - जी 1 पर डबल-क्लिक करें और विवरण टैब पर, कॉपी टू फाइल ... पर क्लिक करें । इसे इस रूप में सहेजें root.cerAlphaSSL CA - SHA256 - G2 के साथ भी ऐसा ही करें और इसे सहेजें issuing.cer। किसी एकल फ़ाइल (जैसे chain.cer) में दो को एक साथ मिलाएं और तर्क के रूप में उपयोग करें -cacert

जैसा कि @AB द्वारा बताया गया है कि लापता प्रमाण पत्र भी यहां पाया जा सकता है


आपके ब्राउज़र काम करते हैं क्योंकि वे CA प्रमाणपत्रों को कैश करते हैं। यदि आपने अतीत में किसी बिंदु पर सही ढंग से कॉन्फ़िगर की गई वेबसाइट पर नेविगेट किया है, जिसका प्रमाण पत्र उसी सीए द्वारा आपके सर्वर के प्रमाण पत्र के रूप में जारी किया गया था, तो उसे ब्राउज़र द्वारा कैश किया जाएगा। जब आप बाद में अपनी गलत तरीके से कॉन्फ़िगर की गई साइट पर जाते हैं, तो आपका ब्राउज़र चेन बनाने के लिए अपने कैश में CA प्रमाणपत्र का उपयोग करेगा। आपके लिए, ऐसा लगता है कि सब कुछ ठीक है, हालांकि पर्दे के पीछे सर्वर गलत तरीके से कॉन्फ़िगर किया गया है।

ध्यान दें कि विंडोज पर IE / Edge और Chrome एक ही कैश साझा करते हैं, जबकि फ़ायरफ़ॉक्स अपने स्वयं के उपयोग करता है।

इसके बाद के संस्करण, आईई / एज और क्रोम (वे एक ही क्रिप्टो ढेर का हिस्सा के रूप में) प्रमाण पत्र के भीतर बुलाया एक एक्सटेंशन का उपयोग करेगा के अलावा AuthorityInformationAccess । यह एक caIssuer विकल्प है जो एक URL प्रदान करता है जिसमें से अंतिम-इकाई प्रमाणपत्र का CA प्रमाणपत्र डाउनलोड किया जा सकता है। इसलिए, भले ही इन ब्राउज़रों में से एक ने पिछले ब्राउज़िंग से गायब प्रमाणपत्रों को कैश नहीं किया है, यदि आवश्यक हो तो यह प्राप्त कर सकता है। ध्यान दें कि फ़ायरफ़ॉक्स ऐसा नहीं करता है, यही वजह है कि कभी-कभी फ़ायरफ़ॉक्स प्रमाणपत्र त्रुटियों को दिखा सकता है जब IE / एज और क्रोम काम करते हैं।


1
यह मेरा सर्वर नहीं है, इसलिए कुछ भी सर्वर-साइड को संशोधित नहीं कर सकता। मैंने curl.haxx.se/docs/caextract.html से CA बंडल का उपयोग करने की कोशिश की (क्योंकि फ़ायरफ़ॉक्स प्रमाणपत्र पर भरोसा करता है) और इसका उपयोग करके पास --cacert cacert.pemकरता है, लेकिन CURL अभी भी प्रमाणपत्र को स्वीकार नहीं करता है।
उडो जी

1
यह है अपने सर्वर। भागो echo q | openssl s_client -showcerts -connect betriebsheft.vog.it:443और आप केवल एक प्रमाण पत्र देखेंगे जो आपके सर्वर द्वारा प्रस्तुत किया जा रहा है। दो होना चाहिए - एंड-एंटिटी सर्टिफिकेट (जो प्रस्तुत किया गया है) और जारी करने वाला सीए - अल्फा एसएसएल - SHA256 - 2 सर्टिफिकेट। उत्तरार्द्ध सर्वर द्वारा नहीं भेजा जा रहा है, लेकिन चाहिए।
garethTheRed

2
@garethTheRed: मैं समझता हूं कि सर्वर सभी प्रमाणपत्र प्रस्तुत नहीं करता है, लेकिन सर्वर मेरे नियंत्रण में नहीं है (इसका मतलब है कि "मेरा सर्वर नहीं")। मैं केवल एक विदेशी सर्वर पर एक एपीआई का उपयोग करने की कोशिश कर रहा हूं। विंडोज के तहत, मेरे ब्राउज़र में से कोई भी प्रमाण पत्र के बारे में शिकायत नहीं करता है, केवल लिनक्स / डेबियन / उबंटू करता है।
उडो जी

@AB: बहुत बहुत धन्यवाद! उस पृष्ठ से सभी रूट प्रमाणपत्रों को स्थापित करने से समस्या हल हो गई । हालाँकि, मैं यह समझना चाहूंगा कि मैन्युअल कदम क्यों आवश्यक है।
उडो जी

2
लापता मध्यवर्ती प्रमाण पत्र (@garethTheRed द्वारा उल्लिखित) वहां पाया जा सकता है: support.globalsign.com/customer/portal/articles/… । ओपी ने शुरू में केवल रूट सर्टिफिकेट को जोड़ने की कोशिश की थी जो शायद पहले से ही था, इस प्रकार कुछ भी हासिल नहीं हुआ।
AB
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.