[ssl] .prt से .crt और .key में कनवर्ट करें



Answers

OpenSSL का उपयोग कर कनवर्ट करना

ये आदेश आपको विशिष्ट प्रकार के सर्वर या सॉफ़्टवेयर के साथ संगत बनाने के लिए प्रमाणपत्रों और कुंजी को विभिन्न प्रारूपों में कनवर्ट करने की अनुमति देते हैं।

  • एक डीईआर फ़ाइल (.crt .cer .der) को पीईएम में कनवर्ट करें

    openssl x509 -inform der -in certificate.cer -out certificate.pem
    
  • एक पीईएम फ़ाइल को डीईआर में कनवर्ट करें

    openssl x509 -outform der -in certificate.pem -out certificate.der
    
  • एक पीकेसीएस # 12 फ़ाइल (.pfx .p12) को एक निजी कुंजी और प्रमाणपत्र पीईएम में कनवर्ट करें

    openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
    
    You can add -nocerts to only output the private key or add -nokeys to only output the certificates.
    
  • एक पीईएम प्रमाणपत्र फ़ाइल और पीकेसीएस # 12 (.pfx .p12) के लिए एक निजी कुंजी कनवर्ट करें

    openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
    
  • पीईएम को सीआरटी में कनवर्ट करें (सीआरटी फ़ाइल)

    openssl x509 -outform der -in certificate.pem -out certificate.crt
    

ओपनएसएसएल कनवर्ट पीईएम

  • पीईएम को डीईआर में कनवर्ट करें

    openssl x509 -outform der -in certificate.pem -out certificate.der
    
  • पीईएम को पी 7 बी में कनवर्ट करें

    openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
    
  • पीईएम को पीएफएक्स में कनवर्ट करें

    openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
    

ओपनएसएसएल कनवर्ट डीईआर

  • डीईआर को पीईएम में कनवर्ट करें

    openssl x509 -inform der -in certificate.cer -out certificate.pem
    

ओपनएसएसएल कनवर्ट पी 7 बी

  • पी 7 बी को पीईएम में कनवर्ट करें

    openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
    
  • P7B को पीएफएक्स में कनवर्ट करें

    openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
    
    openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
    

ओपनएसएसएल कनवर्ट पीएफएक्स

  • पीएफएक्स को पीईएम में कनवर्ट करें

    openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
    

OpenSSL द्वारा आरएसए कुंजी जेनरेट करें

  • कमांड लाइन पर ओपनएसएसएल का उपयोग करके आपको पहले सार्वजनिक और निजी कुंजी उत्पन्न करने की आवश्यकता होगी, आपको पासवर्ड को इस फ़ाइल को -पासआउट तर्क का उपयोग करके सुरक्षित रखना चाहिए, इस तर्क के कई अलग-अलग रूप हैं जो इस बारे में ओपनएसएसएल दस्तावेज से परामर्श लेते हैं।

    openssl genrsa -out private.pem 1024
    
  • यह Private.pem नामक एक प्रमुख फ़ाइल बनाता है जो 1024 बिट्स का उपयोग करता है। इस फ़ाइल में वास्तव में निजी और सार्वजनिक दोनों कुंजी हैं, इसलिए आपको इस फ़ाइल से सार्वजनिक निकालना चाहिए:

    openssl rsa -in private.pem -out public.pem -outform PEM -pubout
    
    or
    
    openssl rsa -in private.pem -pubout > public.pem
    
    or
    
    openssl rsa -in private.pem -pubout -out public.pem
    

    अब आपके पास सार्वजनिक सार्वजनिक उपकरण होगा जिसमें आपकी सार्वजनिक कुंजी होगी, आप इसे तृतीय पक्षों के साथ स्वतंत्र रूप से साझा कर सकते हैं। आप अपनी सार्वजनिक कुंजी का उपयोग करके स्वयं को कुछ एन्क्रिप्ट करके और फिर अपनी निजी कुंजी का उपयोग करके डिक्रिप्ट करके इसका परीक्षण कर सकते हैं, पहले हमें एन्क्रिप्ट करने के लिए थोड़ा सा डेटा चाहिए:

  • उदाहरण फ़ाइल:

    echo 'too many secrets' > file.txt
    
  • अब आपके पास file.txt में कुछ डेटा है, इसे ओपनएसएसएल और सार्वजनिक कुंजी का उपयोग करके एन्क्रिप्ट करें:

    openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
    
  • यह फ़ाइल.txt के एन्क्रिप्टेड संस्करण को फ़ाइल.एसएसएल कहते हैं, अगर आप इस फाइल को देखते हैं तो यह सिर्फ बाइनरी जंक है, किसी के लिए बहुत उपयोगी नहीं है। अब आप निजी कुंजी का उपयोग करके इसे अनएन्क्रिप्ट कर सकते हैं:

    openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
    
  • अब आपके पास decrypted.txt में एक अनएन्क्रिप्टेड फ़ाइल होगी:

    cat decrypted.txt
    |output -> too many secrets
    

ओपनएसएसएल में आरएसए टूल्स विकल्प

  • नाम

    आरएसए - आरएसए कुंजी प्रसंस्करण उपकरण

  • SYNOPSIS

    openssl आरएसए [-help] [-फॉर्म पीईएम | नेट | डीईआर] [-उफॉर्म पीईएम | नेट | डीईआर] [-इन फ़ाइल नाम] [-पासिन तर्क] [-उट फ़ाइल नाम] [-पासआउट तर्क] [-एएस 128] [- एएस 1 9 2] [-एएस 256] [-कैमेलिया 128] [-कैमेलिया 1 9 2] [-कैमेलिया 256] [-डेस] [-डेस 3] [-इडिया] [-टेक्स्ट] [-नोउट] [-मोडुलस] [-चेक] [-प्यूबिन] [-उपआउट] [-RSAPublicKey_in] [-RSAPublicKey_out] [-इनिन आईडी]

  • विवरण

    आरएसए कमांड आरएसए कुंजी को संसाधित करता है। उन्हें मुद्रित विभिन्न रूपों और उनके घटकों के बीच परिवर्तित किया जा सकता है। ध्यान दें कि यह आदेश निजी कुंजी एन्क्रिप्शन के लिए पारंपरिक SSLe अनुकूल संगत प्रारूप का उपयोग करता है: नए अनुप्रयोगों को pkcs8 उपयोगिता का उपयोग करके अधिक सुरक्षित PKCS # 8 प्रारूप का उपयोग करना चाहिए।

  • कमांड विकल्प

    -help
    

    एक उपयोग संदेश मुद्रित करें।

    -inform DER|NET|PEM
    

    यह इनपुट प्रारूप निर्दिष्ट करता है। डीईआर विकल्प एक एएसएन 1 डीईआर एन्कोडेड फॉर्म का उपयोग करता है जो PKCS # 1 RSAPrivateKey या SubjectPublicKeyInfo प्रारूप के साथ संगत है। पीईएम फॉर्म डिफ़ॉल्ट प्रारूप है: इसमें अतिरिक्त शीर्षलेख और पाद लेख लाइनों के साथ एन्कोड किए गए डीईआर प्रारूप बेस 64 शामिल हैं। इनपुट पर पीकेसीएस # 8 प्रारूप निजी कुंजी भी स्वीकार किए जाते हैं। नेट फॉर्म एक प्रारूप है जो नोट्स अनुभाग में वर्णित है।

    -outform DER|NET|PEM
    

    यह आउटपुट प्रारूप को निर्दिष्ट करता है, विकल्पों का अर्थ समान जानकारी के समान होता है।

    -in filename
    

    यदि यह विकल्प निर्दिष्ट नहीं है तो यह इनपुट फ़ाइल से मानक या मानक इनपुट पढ़ने के लिए इनपुट फ़ाइल नाम निर्दिष्ट करता है। यदि कुंजी एन्क्रिप्ट की गई है तो पास वाक्यांश को संकेत दिया जाएगा।

    -passin arg
    

    इनपुट फ़ाइल पासवर्ड स्रोत। Arg के प्रारूप के बारे में अधिक जानकारी के लिए openssl में पास PHRASE ARGUMENTS अनुभाग देखें।

    -out filename
    

    यदि यह विकल्प निर्दिष्ट नहीं है तो यह आउटपुट फ़ाइल नाम को एक कुंजी या मानक आउटपुट लिखने के लिए निर्दिष्ट करता है। यदि कोई एन्क्रिप्शन विकल्प सेट हैं तो एक पास वाक्यांश के लिए संकेत दिया जाएगा। आउटपुट फ़ाइल नाम इनपुट फ़ाइल नाम के समान नहीं होना चाहिए।

    -passout password
    

    आउटपुट फ़ाइल पासवर्ड स्रोत। Arg के प्रारूप के बारे में अधिक जानकारी के लिए openssl में पास PHRASE ARGUMENTS अनुभाग देखें।

    -aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea
    

    ये विकल्प निजी कुंजी को निर्दिष्ट करने से पहले निर्दिष्ट सिफर के साथ एन्क्रिप्ट करते हैं। एक पास वाक्यांश के लिए संकेत दिया जाता है। यदि इनमें से कोई भी विकल्प निर्दिष्ट नहीं है तो कुंजी सादा पाठ में लिखा गया है। इसका मतलब है कि एन्क्रिप्टेड कुंजी के साथ एन्क्रिप्टेड कुंजी में पढ़ने के लिए आरएसए उपयोगिता का उपयोग किसी कुंजी से पास वाक्यांश को हटाने के लिए या एन्क्रिप्शन विकल्पों को सेट करने के लिए किया जा सकता है, इसका उपयोग पास वाक्यांश जोड़ने या बदलने के लिए किया जा सकता है। इन विकल्पों का उपयोग केवल पीईएम प्रारूप आउटपुट फाइलों के साथ किया जा सकता है।

    -text
    

    एन्कोडेड संस्करण के अलावा सादा पाठ में विभिन्न सार्वजनिक या निजी कुंजी घटकों को प्रिंट करता है।

    -noout
    

    यह विकल्प कुंजी के एन्कोडेड संस्करण के आउटपुट को रोकता है।

    -modulus
    

    यह विकल्प कुंजी के मॉड्यूलस के मान को प्रिंट करता है।

    -check
    

    यह विकल्प एक आरएसए निजी कुंजी की स्थिरता की जांच करता है।

    -pubin
    

    डिफ़ॉल्ट रूप से इनपुट फ़ाइल से एक निजी कुंजी पढ़ी जाती है: इस विकल्प के साथ एक सार्वजनिक कुंजी इसके बजाय पढ़ी जाती है।

    -pubout
    

    डिफ़ॉल्ट रूप से एक निजी कुंजी आउटपुट होती है: इस विकल्प के साथ एक सार्वजनिक कुंजी इसके बजाय आउटपुट होगी। यह इनपुट स्वचालित रूप से सेट होता है यदि इनपुट सार्वजनिक कुंजी है।

    -RSAPublicKey_in, -RSAPublicKey_out
    

    जैसे RSAPublicKey प्रारूप को छोड़कर -प्यूबिन और -बाउटआउट का उपयोग इसके बजाय किया जाता है।

    -engine id
    

    एक इंजन निर्दिष्ट करना (इसकी अनूठी आईडी स्ट्रिंग द्वारा) आरएसए को निर्दिष्ट इंजन के कार्यात्मक संदर्भ प्राप्त करने का प्रयास करेगा, इस प्रकार यदि आवश्यक हो तो इसे प्रारंभ करना। इंजन को सभी उपलब्ध एल्गोरिदम के लिए डिफ़ॉल्ट के रूप में सेट किया जाएगा।

  • टिप्पणियाँ

    पीईएम निजी कुंजी प्रारूप हेडर और पाद लेख लाइनों का उपयोग करता है:

    -----BEGIN RSA PRIVATE KEY-----
    
    -----END RSA PRIVATE KEY-----
    

    पीईएम सार्वजनिक कुंजी प्रारूप हेडर और पाद लेख लाइनों का उपयोग करता है:

    -----BEGIN PUBLIC KEY-----
    
    -----END PUBLIC KEY-----
    

    पीईएम आरएसएपब्लिककी प्रारूप हेडर और पाद लेख लाइनों का उपयोग करता है:

    -----BEGIN RSA PUBLIC KEY-----
    
    -----END RSA PUBLIC KEY-----
    

    नेट फॉर्म पुराने नेटस्केप सर्वर और माइक्रोसॉफ्ट आईआईएस .की फाइलों के साथ संगत प्रारूप है, यह इसके एन्क्रिप्शन के लिए अनसाल्टेड आरसी 4 का उपयोग करता है। यह बहुत सुरक्षित नहीं है और इसलिए जब आवश्यक हो तो इसका उपयोग किया जाना चाहिए।

    आईआईएस के कुछ नए संस्करण में निर्यात की गई .key फ़ाइलों में अतिरिक्त डेटा है। उपयोगिता के साथ इनका उपयोग करने के लिए, फ़ाइल को बाइनरी संपादक के साथ देखें और "निजी-कुंजी" स्ट्रिंग को देखें, फिर बाइट अनुक्रम 0x30, 0x82 (यह एक ASN1 अनुक्रम है) पर वापस खोजें। इस बिंदु से सभी डेटा को दूसरी फ़ाइल में कॉपी करें और आरएफए उपयोगिता के इनपुट के रूप में इनफॉर्म नेट विकल्प के साथ उपयोग करें।

    उदाहरण

    एक आरएसए निजी कुंजी पर पास वाक्यांश को हटाने के लिए:

     openssl rsa -in key.pem -out keyout.pem
    

    ट्रिपल डीईएस का उपयोग करके एक निजी कुंजी एन्क्रिप्ट करने के लिए:

     openssl rsa -in key.pem -des3 -out keyout.pem
    

    पीईएम से डीईआर प्रारूप में एक निजी कुंजी को परिवर्तित करने के लिए:

      openssl rsa -in key.pem -outform DER -out keyout.der
    

    मानक आउटपुट के लिए एक निजी कुंजी के घटकों को मुद्रित करने के लिए:

      openssl rsa -in key.pem -text -noout
    

    एक निजी कुंजी के सार्वजनिक हिस्से को आउटपुट करने के लिए:

      openssl rsa -in key.pem -pubout -out pubkey.pem
    

    RSAPublicKey प्रारूप में एक निजी कुंजी का सार्वजनिक हिस्सा आउटपुट:

      openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem
    
Question

क्या कोई मुझे .key फ़ाइल से प्रमाणपत्र .crt और निजी कुंजी .key फ़ाइलों को निकालने / परिवर्तित करने के लिए सही तरीका / आदेश बता सकता है? मैंने अभी पढ़ा है कि वे अंतर-परिवर्तनीय हैं, लेकिन कैसे नहीं।






Links