सवाल पेम फ़ाइल क्या है और यह अन्य ओपनएसएसएल जेनरेटेड कुंजी फ़ाइल प्रारूपों से अलग कैसे है?


मैं दो डेबियन सर्वर बनाए रखने के लिए जिम्मेदार हूं। हर बार मुझे सुरक्षा प्रमाणपत्रों के साथ कुछ भी करना पड़ता है, मैं Google ट्यूटोरियल्स के लिए और आखिरकार काम करता है जब तक कि यह काम करता है।

हालांकि, मेरी खोजों में मैं अक्सर विभिन्न फ़ाइल स्वरूपों में आ जाता हूं (.key, .csr, .pem) लेकिन मैं कभी भी प्रत्येक फाइल प्रारूप का उद्देश्य क्या नहीं है, इस बारे में अच्छी व्याख्या नहीं पा रहा हूं।

मैं सोच रहा था कि क्या सर्वरफॉल्ट पर अच्छे लोग इस मामले पर कुछ स्पष्टीकरण दे सकते हैं?


1174
2018-05-19 02:24


मूल


stackoverflow.com/a/45886431/1599699 - Andrew


जवाब:


एसएसएल काफी देर तक रहा है, आपको लगता है कि कंटेनर प्रारूपों पर सहमति होगी। और तुम सही हो, वहाँ हैं। ऐसा होने पर बहुत सारे मानक होते हैं। तो यही वह है जो मुझे पता है, और मुझे यकीन है कि अन्य लोग इसमें शामिल होंगे।

  • .CSR - यह एक प्रमाणपत्र हस्ताक्षर अनुरोध है। कुछ एप्लिकेशन सर्टिफिकेट-प्राधिकारियों को जमा करने के लिए उत्पन्न कर सकते हैं। वास्तविक प्रारूप पीकेसीएस 10 है जिसे परिभाषित किया गया है आरएफसी 2 9 86। इसमें अनुरोधित प्रमाण पत्र के कुछ / सभी महत्वपूर्ण विवरण शामिल हैं जैसे विषय, संगठन, राज्य, व्हाट्नॉट, साथ ही साथ सार्वजनिक कुंजी प्रमाण पत्र प्राप्त करने के लिए। ये सीए द्वारा हस्ताक्षरित हो जाते हैं और एक प्रमाणपत्र वापस कर दिया जाता है। लौटा प्रमाणपत्र सार्वजनिक है प्रमाणपत्र (जिसमें सार्वजनिक कुंजी शामिल है लेकिन निजी कुंजी नहीं), जो स्वयं कुछ प्रारूपों में हो सकती है।
  • .pem - आरएफसी में परिभाषित 1421 के माध्यम से 1424, यह एक कंटेनर प्रारूप है जिसमें केवल सार्वजनिक प्रमाणपत्र शामिल हो सकता है (जैसे अपाचे इंस्टॉल, और सीए प्रमाणपत्र फाइलें /etc/ssl/certs), या सार्वजनिक कुंजी, निजी कुंजी, और रूट प्रमाणपत्र सहित एक संपूर्ण प्रमाणपत्र श्रृंखला शामिल हो सकती है। उलझन में, यह एक सीएसआर भी एन्कोड कर सकता है (उदाहरण के लिए इस्तेमाल किया यहाँ) क्योंकि पीकेसीएस 10 प्रारूप का अनुवाद पीईएम में किया जा सकता है। नाम से है गोपनीयता एन्हांस्ड मेल (पीईएम), सुरक्षित ईमेल के लिए एक असफल विधि लेकिन कंटेनर प्रारूप जिस पर इसका उपयोग किया जाता है, और x509 ASN.1 कुंजी का बेस 64 अनुवाद है।
  • .key - यह एक पीईएम प्रारूपित फ़ाइल है जिसमें केवल एक विशिष्ट प्रमाणपत्र की निजी कुंजी है और यह केवल एक पारंपरिक नाम है और मानक नहीं है। अपाचे इंस्टॉल में, यह अक्सर रहता है /etc/ssl/private। इन फ़ाइलों पर अधिकार बहुत महत्वपूर्ण हैं, और कुछ प्रोग्राम इन प्रमाणपत्रों को लोड करने से इनकार कर देंगे यदि वे गलत हैं।
  • .pkcs12 .pfx .p12 - मूल रूप से आरएसए द्वारा परिभाषित किया गया पब्लिक-की क्रिप्टोग्राफी मानक (संक्षेप में पीकेसीएस), "12" संस्करण मूल रूप से माइक्रोसॉफ्ट द्वारा बढ़ाया गया था, और बाद में इसे प्रस्तुत किया गया आरएफसी 7292। यह एक पासवर्ड युक्त कंटेनर प्रारूप है जिसमें सार्वजनिक और निजी प्रमाणपत्र दोनों जोड़े शामिल हैं। .Pem फ़ाइलों के विपरीत, यह कंटेनर पूरी तरह से एन्क्रिप्ट किया गया है। Openssl इसे सार्वजनिक और निजी कुंजी दोनों के साथ .pem फ़ाइल में बदल सकता है: openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes 

समय-समय पर दिखाई देने वाले कुछ अन्य प्रारूप:

  • .der - बाइनरी में एएसएन .1 सिंटैक्स को एन्कोड करने का एक तरीका, एक .pem फ़ाइल केवल बेस 64 एन्कोडेड .der फ़ाइल है। ओपनएसएसएल इन्हें .pem में परिवर्तित कर सकता है (openssl x509 -inform der -in to-convert.der -out converted.pem)। विंडोज इन्हें प्रमाणपत्र फाइल के रूप में देखता है। डिफ़ॉल्ट रूप से, विंडोज एक अलग एक्सटेंशन के साथ डीईआर स्वरूपित फ़ाइलों के रूप में प्रमाण पत्र निर्यात करेगा। पसंद...
  • .cert .cer .crt - ए। पेम (या शायद ही कभी .der) स्वरूपित फ़ाइल को एक अलग एक्सटेंशन के साथ, जिसे विंडोज एक्सप्लोरर द्वारा प्रमाण पत्र के रूप में पहचाना जाता है, जो .pem नहीं है।
  • .p7b .keystore - में परिभाषित आरएफसी 2315 पीकेसीएस नंबर 7 के रूप में, यह एक प्रारूप है जो विंडोज़ द्वारा प्रमाणपत्र इंटरचेंज के लिए उपयोग किया जाता है। जावा इन मूल रूप से समझता है, और अक्सर उपयोग करता है .keystore इसके बजाय एक विस्तार के रूप में। .Pem शैली प्रमाणपत्रों के विपरीत, इस प्रारूप में एक है परिभाषित प्रमाणन-पथ प्रमाण पत्र शामिल करने का तरीका।
  • .crl - एक प्रमाणपत्र निरस्तीकरण सूची। सर्टिफिकेट प्राधिकरण इन्हें समाप्ति से पहले प्रमाण पत्र को अधिकृत करने के तरीके के रूप में प्रस्तुत करते हैं। आप कभी-कभी उन्हें सीए वेबसाइटों से डाउनलोड कर सकते हैं।

संक्षेप में, प्रमाण पत्र और उनके घटकों को प्रस्तुत करने के चार अलग-अलग तरीके हैं:

  • पीईएम - आरएफसी द्वारा शासित, इसका उपयोग ओपन-सोर्स सॉफ्टवेयर द्वारा अधिमान्य रूप से किया जाता है। इसमें विभिन्न प्रकार के एक्सटेंशन हो सकते हैं (.pem, .key, .cer, .cert, और अधिक)
  • PKCS7 - जावा द्वारा उपयोग किया जाने वाला एक खुला मानक और विंडोज द्वारा समर्थित। निजी कुंजी सामग्री नहीं है।
  • PKCS12 - एक माइक्रोसॉफ्ट निजी मानक जिसे बाद में आरएफसी में परिभाषित किया गया था जो सादे-पाठ पीईएम प्रारूप बनाम उन्नत सुरक्षा प्रदान करता है। इसमें निजी कुंजी सामग्री हो सकती है। इसका उपयोग विंडोज सिस्टम द्वारा अधिमानतः किया जाता है, और इसे openssl के उपयोग के माध्यम से स्वतंत्र रूप से पीईएम प्रारूप में परिवर्तित किया जा सकता है।
  • डीईआर - पीईएम का मूल प्रारूप। बेस 64-एन्कोडेड पीईएम फ़ाइल के बाइनरी संस्करण के रूप में इसे सोचना उपयोगी है। नियमित रूप से विंडोज के बाहर बहुत ज्यादा इस्तेमाल नहीं किया जाता है।

आशा है कि ये आपकी मदद करेगा।


1450
2018-05-19 02:49



मानकों के बारे में सबसे अच्छी बात यह है कि चुनने के लिए बहुत सारे लोग हैं ... - squillman
.crt .cert और .cer के लिए एक और आम एक्सटेंशन है - David Pashley
पीईएम एक फ़ाइल प्रारूप है जिसमें एक प्रमाणपत्र (उर्फ सार्वजनिक कुंजी), एक निजी कुंजी या वास्तव में दोनों एक साथ सम्मिलित हो सकते हैं। फ़ाइल एक्सटेंशन पर इतना ध्यान न दें; इसका अर्थ है गोपनीयता एन्हांस्ड मेल, एक उपयोग के लिए इसका अधिक उपयोग नहीं देखा गया था, लेकिन फाइल प्रारूप चारों ओर फंस गया था। - Dan Carley
बहुत उपयोगी उत्तर, लेकिन मुझे नहीं लगता कि आपने बनाया गया .pub प्रारूप शामिल किया है ssh-keygen। यह जानना उपयोगी होगा कि यह बाकी के साथ कैसे संबंध रखता है। - Jez
"गोपनीयता एन्हांस्ड ईमेल" को ध्यान में रखने में मदद नहीं कर सकता "पीईएम" के विपरीत "पीईई" शब्दकोष होगा। आरएफसी वाक्यांश "गोपनीयता एन्हांस्ड मेल" वाक्यांश का उपयोग करते हैं - aidan


अपने आप पर पीईएम प्रमाण पत्र नहीं है, यह केवल एन्कोडिंग डेटा का एक तरीका है। X.50 9 प्रमाणपत्र एक प्रकार का डेटा है जो आमतौर पर पीईएम का उपयोग करके एन्कोड किया जाता है।

पीईएम एक एक्स.50 9 प्रमाणपत्र है (जिसका संरचना एएसएन .1 का उपयोग करके परिभाषित किया गया है), एएसएन.1 डीईआर (विशिष्ट एन्कोडिंग नियम) का उपयोग करके एन्कोड किया गया है, फिर बेस 64 एन्कोडिंग के माध्यम से चलाया जाता है और सादा-पाठ एंकर लाइनों के बीच अटक जाता है (BEGIN प्रमाण पत्र और अंत प्रमाण पत्र )।

आप पीकेसीएस # 7 या पीकेसीएस # 12 प्रस्तुतियों का उपयोग करके उसी डेटा का प्रतिनिधित्व कर सकते हैं, और openssl कमांड लाइन उपयोगिता का उपयोग करने के लिए इसका उपयोग किया जा सकता है।

पीईएम के स्पष्ट लाभ यह है कि ईमेल संदेश के शरीर में पेस्ट करना सुरक्षित है क्योंकि इसमें एंकर लाइनें हैं और यह 7-बिट साफ है।

आरएफसी 1422 में पीईएम मानक के बारे में अधिक जानकारी है क्योंकि यह कुंजी और प्रमाणपत्र से संबंधित है।


123
2018-06-06 15:19



आप "openssl कमांड लाइन का उपयोग करके" कैसे करते हैं? - Samik R
एक डीईआर फ़ाइल (.crt .cer .der) को पीईएम में कनवर्ट करने के लिए: openssl x509 -inform der -in cert.cer -out cert.pem। पीईएम फ़ाइल को डीईआर में कनवर्ट करने के लिए: openssl x509 -outform der -in cert.pem -out certi.der। एक पीकेसीएस # 12 फ़ाइल (.pfx .p12) को कनवर्ट करने के लिए PEM को एक निजी कुंजी और प्रमाणपत्र शामिल करें: openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes। पीईसी प्रमाणपत्र फ़ाइल और पीकेसीएस # 12 (.pfx .p12) के लिए एक निजी कुंजी को कन्वर्ट करने के लिए: openssl pkcs12 -export -out cert.pfx -inkey privateKey.key -in cert.crt -certfile CACert.crt से यहाँ - mpeac


कभी कभी ए .crt फ़ाइल पहले से ही एक है .pem। देख: https://stackoverflow.com/questions/991758/openssl-pem-key


51
2018-03-15 00:24



वास्तव में सच है, मैंने अभी यह देखा है। मुझे रैकस्पेस लोडबैंसर में एक पीईएम प्रमाणपत्र दर्ज करना पड़ा और मैं सोच रहा था कि उत्पन्न प्रारूप उस प्रारूप में था या नहीं। लेकिन यह इस तरह काम करता था, इसलिए मेरा निष्कर्ष भी था, इनमें से अधिकांश। सीआरटी पीईएम प्रारूप में आते हैं। - Glenn Plas