सवाल फ़ाइल के रूप में स्थानीय रूप से दूरस्थ सर्वर SSL प्रमाणपत्र को कैसे सहेजते हैं


मुझे एक दूरस्थ सर्वर का एक एसएसएल प्रमाण पत्र डाउनलोड करने की आवश्यकता है (HTTPS नहीं, लेकिन एसएसएल हैंडशेक Google क्रोम / आईई / wget और कर्ल सभी के रूप में होना चाहिए प्रमाण पत्र चेक विफल त्रुटियों) और मेरे लैपटॉप में विश्वसनीय प्रमाण पत्र जोड़ें विंडोज़ ' सर्टिफिकेट स्टोर क्योंकि मैं अपने आईटी लोगों को सीए प्रमाण देने के लिए नहीं ढूंढ पा रहा हूं।

यह कार्यालय संचार के लिए है इसलिए मैं वास्तव में प्रमाण प्राप्त करने के लिए वास्तविक ग्राहक का उपयोग नहीं कर सकता।

मैं यह कैसे कर सकता हूं, मेरे पास विंडोज 7 है और लिनक्स का ढेर आसान है इसलिए कोई टूल / स्क्रिप्टिंग भाषा ठीक है।


273
2018-01-18 07:43


मूल


एक प्रमाणपत्र प्राप्त करने के लिए डाक सर्वर, देख security.stackexchange.com/questions/70528/... - That Brazilian Guy


जवाब:


यदि आपके पास ओपनएसएसएल तक पहुंच है, तो कोशिश करें

openssl s_client -connect {HOSTNAME}:{PORT} -showcerts

{HOSTNAME} और {PORT} को आपके मूल्यों के साथ बदलना।


263
2017-08-17 07:20



मैं इस विकल्प को पसंद करता हूं क्योंकि मुझे जीयूआई खोलना नहीं है, और मैं इसे अपने सर्वर से एसएसएच के माध्यम से कर सकता हूं। - bramp
इसके अलावा यह HTTP के अलावा प्रोटोकॉल के लिए काम करता है। - matt
elec3647 का समाधान एक खोल पाइपलाइन में पीईएम निकालने पूरी तरह से स्वचालित करता है। - phs
443 HTTPS के लिए डिफ़ॉल्ट पोर्ट है। - Flimm
मुझे चाहिए था -servername वर्चुअल होस्ट प्रमाणपत्र प्राप्त करने का विकल्प। gist.github.com/Artistan/5219484efb2fe51cd064175b3d0d5971 - Artistan


प्रमाण पत्र खींचने और डाउनलोड करने के लिए एक त्वरित विधि निम्न आदेश को चलाने के लिए होगा जो आउटसोर्स से आउटपुट को x509 ssl कमांड में पाइप करता है जो बस सबकुछ बंद कर देता है। उदाहरण के लिए:

openssl s_client -showcerts -connect server.edu:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >mycertfile.pem

प्रमाण पत्र का उपयोग करने के लिए, wget के साथ,

wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem

191
2017-09-05 13:47



मैंने यह कोशिश की (एक और वेबसाइट पर) - लेकिन उम्मीद की गई कि पूरी तरह से श्रृंखलाओं की श्रृंखला पूरी हो गई है: ऐसा लगता है कि यह केवल श्रृंखला में पहला लाया गया है - क्या इसकी उम्मीद की जा सकती है? - monojohnny
यह मेरे लिए काम नहीं कर रहा है: प्रमाण पत्र लोड करने में असमर्थ 27262: त्रुटि: 0906 डी06 सी: पीईएम दिनचर्या: PEM_read_bio: कोई प्रारंभ रेखा नहीं: /SourceCache/OpenSSL098/OpenSSL098-50/src/crypto/pem/pem_lib.c: 648: अपेक्षित: ट्रस्टेड प्रमाण पत्र - Janusz
मैं monojohnny से सहमत हूं, यह आपको पूरी श्रृंखला नहीं देता है। - Michael Munsey
देर लेकिन @monojohnny: openssl s_client -showcerts प्राप्त श्रृंखला में सभी कर्ट प्रदर्शित करता है (यदि कनेक्शन सफल होता है), लेकिन पाइपिंग के माध्यम से openssl x509 केवल पहला लेता है और बाकी को छोड़ देता है। इसके बजाय उन सभी को प्राप्त करने के लिए ...| sed -n '/^-----BEGIN CERT/,/^-----END CERT/p' या ...| awk '/^-----BEGIN CERT/,/^-----END CERT/' आप थोड़ा और जटिल भी उपयोग कर सकते हैं awk प्रत्येक प्रमाणपत्र को एक अलग फ़ाइल में रखने के लिए जो उन्हें उपयोग करना आसान बनाता है openssl और कुछ अन्य उपकरण। - dave_thompson_085
प्रमाण पत्र का उपयोग करने के लिए, wget के साथ, wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem - MUY Belgium


ईमानदार होने के लिए, मैंने पहले कभी कोशिश नहीं की है (कभी भी इसकी आवश्यकता नहीं है), मैंने अभी फ़ायरफ़ॉक्स में कोशिश की है और ऐसा लगता है कि यह सहेजने के लिए काम करता है:

  1. नीचे दिए गए शीर्ष / पैडलॉक पर SSL प्रमाणपत्र आइकन पर क्लिक करें।
  2. क्लिक करें View Certificate
  3. पर क्लिक करें Details टैब
  4. चुनिए कि आप पदानुक्रम से कौन सा प्रमाणपत्र चाहते हैं [तस्वीर में घिरा नहीं]
  5. क्लिक करें Export

alt text


114
2018-01-18 07:56



जानना अच्छा है - लेकिन मेरी जिज्ञासा के लिए, क्या आप कुछ और समझाने की कोशिश कर रहे हैं जो आप पूरा करने की कोशिश कर रहे हैं? मुझे एसएसएल क्लाइंट प्रमाण पत्र निर्यात करने की आवश्यकता नहीं है और मुझे बहुत उत्सुकता है कि आपको वास्तव में ऐसा करने की आवश्यकता क्यों होगी ... - William Hilsum
यह एक सर्वर प्रमाण पत्र है, ग्राहक प्रमाण पत्र नहीं। क्लाइंट निजी कुंजी और प्रमाणपत्र निर्यात करने का मुख्य कारण बैकअप बनाए रखना है, या यदि आप किसी अन्य ब्राउज़र या कंप्यूटर का उपयोग करके प्रमाणित करना चाहते हैं। - gbroiles
@gbroiles - सवाल पढ़ें, उसने गलत शब्दावली का उपयोग किया, लेकिन इससे उसकी समस्या हल हो गई। - William Hilsum
ठीक है, और मैंने आपके प्रश्न का उत्तर दिया - कोई ग्राहक प्रमाण पत्र क्यों सहेजना चाहता है? "एसएसएल क्लाइंट सर्टिफिकेट" आपका शब्द था, न कि उसका। - gbroiles
ऐसा लगता है कि क्रोम में ऐसा करने का कोई तरीका नहीं है, है ना? - fatuhoku


क्रोम ब्राउज़र का उपयोग कर प्रमाण पत्र निर्यात करना

  1. एसएसएल का उपयोग कर वेबसाइट से कनेक्ट करें (https: // जो कुछ भी)

2. लॉक प्रतीक पर क्लिक करें और फिर विवरण पर क्लिक करें

  1. क्रोम संस्करण 56 के बाद से, आप निम्न कार्य करते हैं: तीन डॉट्स मेनू पर जाएं -> अधिक टूल्स -> डेवलपर टूल्स, फिर सुरक्षा टैब पर क्लिक करें। यह आपको एक देगा सुरक्षा अवलोकन के साथ प्रमाणपत्र देखें बटन।

  2. पर क्लिक करें प्रमाणपत्र देखें बटन।

    एक मॉडल खिड़की खुल जाएगी। इसमें दो पैन हैं। शीर्ष व्यक्ति साइट के प्रमाण पत्र (अंतिम सूचीबद्ध), मध्यवर्ती प्रमाण पत्र, और रूट प्रमाणपत्र (शीर्षतम एक) का ट्रस्ट पदानुक्रम दिखाता है।

    दूसरा, बड़ा फलक, प्रमाणपत्रों में से एक का विवरण दिखाता है।

    शून्य या अधिक इंटरमीडिएट प्रमाण पत्र हो सकते हैं।

    ध्यान दें कि मूल प्रमाणपत्र में सोने-सीमा वाले आइकन हैं। दूसरों की नीली सीमा है।

    नीचे स्क्रीन शॉट देखें।

  3. प्रमाण पत्र निर्यात करने के लिए:

    1. सबसे पहले ट्रस्ट पदानुक्रम में प्रमाणपत्र के आइकन पर क्लिक करें।
    2. प्रमाण पत्र मोडल के मुख्य भाग में दिखाया जाएगा।
    3. मोडल के मुख्य भाग में प्रमाणपत्र के बड़े आइकन पर क्लिक करें। खींचें आपके डेस्कटॉप पर आइकन। क्रोम फिर प्रमाण पत्र को आपके डेस्कटॉप पर कॉपी करेगा।

enter image description here


41
2017-12-26 18:45



मुझे आइकन को टेक्स्ट एडिटर पर खींचना पड़ा, डेस्कटॉप मेरे लिए काम नहीं करता था। - Cory Klein
विंडोज़ पर क्रोम के लिए, 'प्रमाणपत्र देखें' पर क्लिक करने के बाद मोडल मैक से अलग है। विवरण टैब पर क्लिक करें और फिर फ़ाइल में कॉपी करें ... फिर प्रारूप और फ़ाइल नाम चुनें, जो सीधा है। - PolyTekPatrick
जब मैक ओएस पर क्रोम v63 का उपयोग करता हूं, तो मुझे प्रमाणपत्र को खींचने से प्राप्त पाठ फ़ाइल मानव-पठनीय है, लेकिन किसी भी संरचित प्रारूप में नहीं है जिसे मैं समझ सकता हूं कि मशीन-पठनीय रूप में X.509 .crt जैसे रूपांतरित करने के तरीके को कैसे परिवर्तित किया जाए। - Jim DeLaHunt
पता बार से या इस देव टैब से खोलने पर कोई फर्क नहीं पड़ता, और अभी भी crt डाउनलोड नहीं कर सकता ... - user25


ये है gbroiles 'जवाब, लेकिन मैं यह इंगित करना चाहता था कि कर्ल प्रोजेक्ट कुछ और विवरण के साथ एक पृष्ठ है उपयोग करने पर openssl रिमोट सर्वर के एसएसएल प्रमाणपत्र को सहेजने के लिए:

  • openssl s_client -connect {HOSTNAME}: {PORT} | टी लॉगफाइल
  • प्रकार QUIT और एंटर / रिटर्न कुंजी दबाएं।
  • प्रमाणपत्र "BEGIN प्रमाण पत्र" और "अंत प्रमाण पत्र" मार्करों के बीच सूचीबद्ध किया जाएगा।
  • यदि आप प्रमाण पत्र में डेटा देखना चाहते हैं, तो आप इसका उपयोग कर सकते हैं:

    openssl x509 -inform PEM -in certfile -text -out certdata

    कहा पे certfile प्रमाण पत्र निकाला गया है logfile। यहां देखो certdata


18
2017-10-18 22:10



यह मेरे लिए काम किया। थोड़ा और स्पष्ट होने के लिए, मैंने लॉगफाइल संपादित किया और BEGIN प्रमाण पत्र और अंत प्रमाण पत्र के बाहर की गई सब कुछ छंटनी की और परिणाम को certfile.pem के रूप में सहेजा (सुनिश्चित नहीं किया गया कि एक्सटेंशन आवश्यक था)। - Michael Welch


स्वचालित

- सर्वर के वर्चुअल होस्ट से सही प्रमाण प्राप्त करने के लिए -ervernameame आवश्यक था।

openssl s_client -showcerts -connect host.name.com:443 -servername host.name.com </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > host.name.com.pem

आप डेस्कटॉप के लिए प्रमाणपत्र में भी कनवर्ट कर सकते हैं

openssl x509 -inform PEM -in host.name.com.pem -outform DER -out host.name.com.cer

आखिरी हिस्सा इसे अपने कर्ट में जोड़ना है, विंडोज़ पर सुनिश्चित नहीं है
मैक कीचेन के लिए मैंने इस्तेमाल किया, समान होना चाहिए ...

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain host.name.com.cer


9
2018-01-25 15:59



gist.github.com/Artistan/5219484efb2fe51cd064175b3d0d5971 - Artistan


इससे परिणाम केवल प्रमाणपत्र ही होंगे

echo QUIT | \
openssl s_client -showcerts -connect hostname:port | \
awk '/-----BEGIN CERTIFICATE-----/ {p=1}; p; /-----END CERTIFICATE-----/ {p=0}' "

1
2018-05-23 01:20