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


319

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

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

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


एक मेल सर्वर का प्रमाण पत्र प्राप्त करने के लिए , सुरक्षा
वह ब्राजील के लड़के

सबसे अधिक संभावना है, आपके ब्राउज़र में इसके लिए एक अंतर्निहित सुविधा है - शायद "डेवलपर टूल" के तहत।
नोबार

जवाबों:


316

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

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

आपके मूल्यों के साथ {HOSTNAME} और {PORT} की जगह।


2
मुझे यह विकल्प पसंद है क्योंकि मुझे एक GUI खोलना नहीं है, और मैं इसे अपने सर्वर से SSH के माध्यम से कर सकता हूं।
नम

2
साथ ही यह HTTP के अलावा अन्य प्रोटोकॉल के लिए काम करता है।
मैट

14
Elec3647 का समाधान पूरी तरह से एक शेल पाइप लाइन में PEM निकालने को स्वचालित करता है।
phs

4
443 HTTPS के लिए डिफ़ॉल्ट पोर्ट है।
फ्लिम्ड

4
-servernameवर्चुअल होस्ट प्रमाणपत्र प्राप्त करने के लिए मुझे विकल्प की आवश्यकता थी । gist.github.com/Artistan/5219484efb2fe51cd064175b3d0d5971
Artistan

240

प्रमाण पत्र को खींचने और डाउनलोड करने की एक त्वरित विधि निम्न कमांड को चलाने के लिए होगी जो कि आउटपुट को -showcerts से 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

5
मैंने यह कोशिश की (किसी अन्य वेबसाइट पर) - लेकिन उम्मीद की गई थी कि श्रृंखलाओं की पूरी श्रृंखला: लगता है कि यह केवल श्रृंखला में पहली बार वापस लाया गया है - क्या यह अपेक्षित है?
मोनोजोहनी

8
मेरे लिए यह काम नहीं कर रहा है: प्रमाण पत्र को लोड करने में असमर्थ 27262: त्रुटि: 0906D06C: PEM दिनचर्या: PEM_read_bio: कोई प्रारंभ रेखा: /SourceCache/OpenSSL098/OrcSSL098-50/src/crypto/pem/pem_lib.c: 648: exping 6: सर्टिफिकेट
Janusz

4
मैं monojohnny से सहमत हूं, यह आपको पूरी श्रृंखला नहीं देता है।
माइकल मुन्से

4
स्वर्गीय लेकिन @monojohnny: openssl s_client -showcertsसभी श्रृंखलाओं को प्राप्त श्रृंखला में प्रदर्शित करता है (यदि कनेक्शन सफल होता है), लेकिन पाइपिंग के माध्यम openssl x509से केवल पहले एक को लेता है और बाकी को छोड़ देता है। इसके बजाय सभी का उपयोग करने के लिए ...| sed -n '/^-----BEGIN CERT/,/^-----END CERT/p'या ...| awk '/^-----BEGIN CERT/,/^-----END CERT/'आप awkप्रत्येक प्रमाण पत्र को एक अलग फ़ाइल में डालने के लिए थोड़ा और अधिक जटिल का उपयोग कर सकते हैं जो उन्हें opensslऔर कुछ अन्य उपकरणों के साथ उपयोग करना आसान बनाता है ।
dave_thompson_085

3
index.htmlHTTP request sent, awaiting response... 200 OK Length: unspecified [text/html] Saving to: ‘index.html.1’
Wget

126

सच कहूं तो, मैंने इससे पहले कभी भी (कभी ज़रूरत नहीं हुई) कोशिश की है, मैंने अभी फ़ायरफ़ॉक्स में कोशिश की है और यह बचत के लिए काम करता है:

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

वैकल्पिक शब्द


जानने के लिए अच्छा है - लेकिन मेरी जिज्ञासा के लिए, क्या आप कुछ और समझा सकते हैं जिसे आप पूरा करने की कोशिश कर रहे हैं? मुझे SSL क्लाइंट प्रमाणपत्र निर्यात करने की आवश्यकता नहीं है और मैं बहुत उत्सुक हूं कि आपको वास्तव में ऐसा करने की आवश्यकता क्यों होगी ...
विलियम हिल्सम

1
वह सर्वर सर्टिफिकेट है, क्लाइंट सर्टिफिकेट नहीं। क्लाइंट निजी कुंजी और प्रमाणपत्र निर्यात करने का मुख्य कारण बैकअप बनाए रखना है, या यदि आप किसी अन्य ब्राउज़र या कंप्यूटर का उपयोग करके प्रमाणित करना चाहते हैं।
gobiles

@ ग्रोबाइल्स - प्रश्न पढ़ें, उन्होंने गलत शब्दावली का इस्तेमाल किया, लेकिन इससे उनकी समस्या हल हो गई।
विलियम हिल्सम

1
सही है, और मैंने आपके प्रश्न का उत्तर दिया - कोई ग्राहक प्रमाणपत्र को क्यों बचाना चाहेगा? "एसएसएल क्लाइंट सर्टिफिकेट" आपका कार्यकाल था, न कि उसका।
gbroiles

1
ऐसा नहीं लगता कि Chrome में ऐसा करने का कोई तरीका है, है ना ?!
फतुहोकू 16

50

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

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

2. लॉक सिंबल पर क्लिक करें और फिर डिटेल्स पर क्लिक करें

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

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

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

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

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

    ध्यान दें कि रूट सर्टिफिकेट में एक गोल्ड-बॉर्डर वाला आइकन है। दूसरों की नीली सीमा है।

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

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

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

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


1
मुझे टेक्स्ट एडिटर पर आइकन को खींचना था, डेस्कटॉप मेरे लिए काम नहीं करता था।
कोरी क्लेन

2
विंडोज पर क्रोम के लिए, 'सर्टिफिकेट' पर क्लिक करने के बाद मोडल मैक से अलग होता है। विवरण टैब पर क्लिक करें और फिर फ़ाइल में कॉपी करें ... फिर प्रारूप और फ़ाइल नाम चुनें, जो सीधा है।
PolyTekPatrick

1
जब मैं Mac OS पर Chrome v63 का उपयोग करता हूं, तो मुझे प्रमाण पत्र को खींचने से प्राप्त होने वाली पाठ फ़ाइल मानव-पठनीय है, लेकिन किसी भी संरचित प्रारूप में नहीं है कि मैं एक्स-509 जैसे मशीन-पठनीय रूप में परिवर्तित करने का तरीका समझ सकता हूं।
जिम डेलाउंट

कोई फर्क नहीं पड़ता अगर पता बार से या इस देव टैब से खुल रहा है, और अभी भी crt डाउनलोड नहीं कर सकते ...
user25

1
Chrome 72.0.3626.121 पर कोई काम नहीं कर रहा है
A. D'Alfonso

20

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

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

    ओपनएसएल एक्स 509 -फॉर्म पीईएम-सर्टिफाइल -टेक्स्ट -आउट सेरडेटा

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


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

16

स्वचालित

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

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



ध्यान दें कि कुछ एप्लिकेशन को सिस्टम और SystemRoot keychains (गोलंग, मैं आपको देख रहा हूं) से परेशान हूं, इसलिए उन स्तरों के लिए ट्रस्ट स्थापित करने और स्थापित करने के बाद, आप इसे ऐप के login.keychainमाध्यम से अपने स्वयं के उपयोगकर्ता के लिए कॉपी करना चाह सकते हैं Keychain Access, आप बस सिस्टम / SystemRoot में प्रमाण पत्र के लिए ब्राउज़ कर सकते हैं और क्लिक करें और इसे अपने loginकिचेन में खींचें ।
ड्रैगन 788

1
@ dragon788 - मेरा इरादा इसे कमांड लाइन के साथ स्वचालित करना था और यह मेरे लिए काम करता है। कृपया यहाँ साझा करें यदि आप CLI के माध्यम से login.keychain के लिए एक समाधान ढूंढते हैं! धन्यवाद!
आर्टिस्टन

वेब पर मैंने जो पढ़ा है, उसे देखते हुए मेरा मानना ​​है कि केवल -dकमांड से हटने से सिस्टम किचेन के बजाय केवल उपयोगकर्ता किचेन पर लागू होगा।
ड्रैगन 788

यदि आप एक मध्यवर्ती प्रमाण पत्र भी जोड़ रहे हैं, तो आप इसे सही तरीके से जोड़ने के लिए trustAsRootइसके बजाय उपयोग करना चाहेंगे trustRoot
ड्रैगन 788


0

अगर विंडोज पर बहुत आसान तरीका मिल गया। Microsoft एज (पूर्व-क्रोमियम) की कोशिश की और पता बार में लॉक पर क्लिक किया -> देखें प्रमाण पत्र डायलॉग एक "निर्यात फ़ाइल" बटन के साथ पॉप अप करता है, जो इसे एक .crt फ़ाइल के रूप में सहेजता है।

ज्यादा नहीं मैं एज का उपयोग करूँगा, लेकिन यह केक का टुकड़ा था।

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