.Pem কে .crt এবং .key এ রূপান্তর করুন


371

কেউ কি আমাকে কোনও ফাইল থেকে শংসাপত্র .crtএবং ব্যক্তিগত কী .keyফাইলগুলি উত্তোলন / রূপান্তর করার সঠিক উপায় / কমান্ড বলতে পারেন .pem? আমি কেবল এগুলি পড়তে পারি যে তারা বিনিময়যোগ্য, তবে কীভাবে তা নয়।



উত্তর:


500

আমি এটি ব্যবহার করে পেমকে ক্র্টে রূপান্তর করতে সক্ষম হয়েছি:

openssl x509 -outform der -in your-cert.pem -out your-cert.crt

13
একটি পাঠ্য সম্পাদক ব্যবহার করা সর্বোত্তম পদ্ধতির নয়। পিকেসিএস ৮ আকারে কীটি বের করার জন্য: openssl pkey -in mumble.pem -out mumble-key.pem যদি ওপেনএসএসএল সংস্করণটি ১.০.০ এর চেয়ে পুরনো হয়, আরএসএ কী হিসাবে কীটি বের করতে:openssl rsa -in mumble.pem -out mumble-key.pem
অ্যান্ড্রন

131
আমি আপনার আদেশটি চেষ্টা করেছি কিন্তু আমার কাছে ছিল:unable to load certificate 140584440387400:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
ড্যামিয়েন ক্যারল

15
কী কমান্ড (ওপেনসেল পিকি-ইন বিড়বিড় করে। পিএম-আউট বিড়ম্বনা-কি.পিএম) এটি দেয়: কীটি লোড করতে অক্ষম 129051320116880: ত্রুটি: 0906D06 সি: পিইএম রুটিনগুলি: পিইএম_ড্রেড_বিও: কোনও প্রারম্ভিক রেখা: pem_lib.c: 703: প্রত্যাশা: কোনও ব্যক্তিগত কী
মাইলর্ড

2
ওপেনএসএল আরএসএ -তে আপনার-সার্টি.পিএম-আউটফর্ম পেম-আউট আপনার-
কী.পিএম

3
@ অ্যান্ড্রোন পিকে এবং আরএসএ উভয়ই আমাকে Expecting: ANY PRIVATE KEYত্রুটি দেয়।
অ্যারো ওয়াং

393

ওপেনএসএসএল ব্যবহার করে রূপান্তর করা

এই আদেশগুলি আপনাকে শংসাপত্র এবং কীগুলি বিভিন্ন ধরণের সার্ভার বা সফ্টওয়্যারগুলির সাথে উপযুক্ত করে তুলতে বিভিন্ন ফর্ম্যাটে রূপান্তর করতে দেয়।

  • একটি DER ফাইল (.crt .cer .der) কে পিইএম তে রূপান্তর করুন

    openssl x509 -inform der -in certificate.cer -out certificate.pem
    
  • একটি PEM ফাইলকে DER এ রূপান্তর করুন

    openssl x509 -outform der -in certificate.pem -out certificate.der
    
  • প্রাইভেট কী এবং সার্টিফিকেট সমেত একটি পিকেসিএস # 12 ফাইল (.pfx .p12) রূপান্তর করুন EM

    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
    
  • পিইএমকে সিআরটি (.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
    

ওপেনএসএসএল রূপান্তর ডিইআর

  • DER কে PEM এ রূপান্তর করুন

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

ওপেনএসএসএল কনভার্ট পি 7 বি

  • P7B কে PEM এ রূপান্তর করুন

    openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
    
  • P7B কে PFX এ রূপান্তর করুন

    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 genrsa -out private.pem 1024
    
  • এটি প্রাইভেট.পেম নামে একটি মূল ফাইল তৈরি করে যা 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
    
  • এটি file.txt কে ফাইল.এসএসএল বলে একটি এনক্রিপ্ট করা সংস্করণ তৈরি করে, আপনি যদি এই ফাইলটির দিকে তাকান তবে এটি কেবল বাইনারি জাঙ্ক, কারও পক্ষে খুব কার্যকর নয় nothing এখন আপনি ব্যক্তিগত কীটি ব্যবহার করে এটি এনক্রিপ্ট করতে পারবেন:

    openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
    
  • আপনার কাছে এখন ডিক্রিপ্টড.টেক্সটে একটি এনক্রিপ্ট করা ফাইল থাকবে:

    cat decrypted.txt
    |output -> too many secrets
    

ওপেনএসএসএলে আরএসএ সরঞ্জামের বিকল্প

  • NAME এর

    আরএসএ - আরএসএ কী প্রসেসিং সরঞ্জাম

  • সংক্ষিপ্তসার

    ওপেনএসএল আরএসএ [-হেল্প] [-ইনফর্ম পিইম | নেট | ডের] [-আউটফর্ম পিইম | নেট | ডের] [-ইন-ফাইলনাম] [-পাসিন আর্গ] [-আর ফাইলনাম] [-পাসআউট আর্গ] [-aes128] [- aes192] [-aes256] [-camellia128] [-camellia192] [-camellia256] [-ডেস] [-ডেস 3] [-idea] [-প্রবন্ধ] [-আউটআউট] [-মডিউলাস] [-চেক] [-পুবিন] [-পুটআউট] [-আরএসএলপাব্লিককি_ইন] [-আরএসএপলিটিকিকে_আউট] [-ইজিন আইডি]

  • বর্ণনা

    আরএসএ কমান্ড আরএসএ কীগুলি প্রসেস করে। এগুলি বিভিন্ন ফর্ম এবং মুদ্রিত তাদের উপাদানগুলির মধ্যে রূপান্তরিত হতে পারে। নোট করুন এই কমান্ডটি প্রাইভেট কী এনক্রিপশনের জন্য চিরাচরিত SSLeay সামঞ্জস্যপূর্ণ ফর্ম্যাটটি ব্যবহার করে: নতুন অ্যাপ্লিকেশনগুলিকে pkcs8 ইউটিলিটি ব্যবহার করে আরও সুরক্ষিত PKCS # 8 ফর্ম্যাট ব্যবহার করা উচিত।

  • আদেশ বিকল্প

    -help
    

    একটি ব্যবহার বার্তা প্রিন্ট আউট।

    -inform DER|NET|PEM
    

    এটি ইনপুট ফর্ম্যাট নির্দিষ্ট করে। DER বিকল্পটি একটি ASN1 DER এনকোডযুক্ত ফর্মটি পিকেসিএস # 1 আরএসএপ্রাইভেটকে বা সাবজেক্টপাবলিক কেইআইএনফো ফর্ম্যাটের সাথে সামঞ্জস্যপূর্ণ uses পিইএম ফর্মটি ডিফল্ট ফর্ম্যাট: এটি অতিরিক্ত শিরোনাম এবং পাদচরণের লাইনগুলির সাথে এনকোডড ডিইআর ফর্ম্যাট বেসওয়েশন নিয়ে গঠিত। ইনপুটটিতে পিকেসিএস # 8 ফর্ম্যাটের ব্যক্তিগত কীগুলিও গ্রহণ করা হয়। নেট ফর্মটি নোট বিভাগে বর্ণিত একটি ফর্ম্যাট।

    -outform DER|NET|PEM
    

    এটি আউটপুট ফর্ম্যাট নির্দিষ্ট করে, বিকল্পগুলির একই-অর্থ-ইনফরমেশন বিকল্প হিসাবে রয়েছে।

    -in filename
    

    এই বিকল্পটি নির্দিষ্ট না করা থাকলে কোনও কী বা স্ট্যান্ডার্ড ইনপুট থেকে কোনও পড়তে ইনপুট ফাইলের নাম নির্দিষ্ট করে। কীটি এনক্রিপ্ট করা থাকলে একটি পাস বাক্যাংশ জিজ্ঞাসা করা হবে।

    -passin arg
    

    ইনপুট ফাইলের পাসওয়ার্ড উত্স। আরগের ফর্ম্যাট সম্পর্কে আরও তথ্যের জন্য ওপেনএসএল-এ পাস্রেস ফ্রেস আর্গুমেন্টস বিভাগটি দেখুন।

    -out filename
    

    এই বিকল্পটি নির্দিষ্ট না করা থাকলে একটি কী বা স্ট্যান্ডার্ড আউটপুট লিখতে আউটপুট ফাইলের নাম নির্দিষ্ট করে। যদি কোনও এনক্রিপশন বিকল্প সেট করা থাকে তবে একটি পাস বাক্যাংশ জিজ্ঞাসা করা হবে। আউটপুট ফাইলের নাম ইনপুট ফাইলের নামের মতো হওয়া উচিত নয়।

    -passout password
    

    আউটপুট ফাইল পাসওয়ার্ড উত্স। আরগের ফর্ম্যাট সম্পর্কে আরও তথ্যের জন্য ওপেনএসএল-এ পাস্রেস ফ্রেস আর্গুমেন্টস বিভাগটি দেখুন।

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

    এই বিকল্পগুলি আউটপুট দেওয়ার আগে প্রাইভেট কীটিকে নির্দিষ্ট সাইফারের সাথে এনক্রিপ্ট করে। একটি পাস বাক্যাংশ জিজ্ঞাসা করা হয়। যদি এই বিকল্পগুলির মধ্যে কোনওটি নির্দিষ্ট না করা থাকে তবে কীটি সরল পাঠ্যে লেখা থাকে। এর অর্থ হ'ল কোনও এনক্রিপশন বিকল্প ছাড়া এনক্রিপ্ট করা কীতে আরএসএ ইউটিলিটি ব্যবহার করে কোনও কী থেকে পাস বাক্যাংশ সরাতে বা এনক্রিপশন বিকল্পগুলি সেট করে এটি পাস বাক্যাংশ যুক্ত বা পরিবর্তন করতে ব্যবহার করা যেতে পারে। এই বিকল্পগুলি কেবল পিইএম ফর্ম্যাট আউটপুট ফাইলগুলির সাথে ব্যবহার করা যেতে পারে।

    -text
    

    এনকোড করা সংস্করণ ছাড়াও সরল পাঠ্যের বিভিন্ন সরকারী বা ব্যক্তিগত কী উপাদানগুলি মুদ্রণ করে।

    -noout
    

    এই বিকল্পটি কীটির এনকোডড সংস্করণটির আউটপুট আটকায়।

    -modulus
    

    এই বিকল্পটি কীটির মডুলাসের মান মুদ্রণ করে।

    -check
    

    এই বিকল্পটি কোনও আরএসএ প্রাইভেট কীটির ধারাবাহিকতা পরীক্ষা করে।

    -pubin
    

    ডিফল্টরূপে ইনপুট ফাইল থেকে একটি প্রাইভেট কী পড়া হয়: এই বিকল্পের পরিবর্তে একটি সর্বজনীন কী পড়ে।

    -pubout
    

    ডিফল্টরূপে একটি ব্যক্তিগত কী আউটপুট হয়: এই বিকল্পের সাথে একটি সর্বজনীন কী এর পরিবর্তে আউটপুট হবে। ইনপুটটি সর্বজনীন কী হলে এই বিকল্পটি স্বয়ংক্রিয়ভাবে সেট হয়ে যায়।

    -RSAPublicKey_in, -RSAPublicKey_out
    

    আর-এস-পিপাব্লিককি ফর্ম্যাট ব্যতীত -পুবিন এবং -পাবআউট ব্যবহার করা হয়।

    -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
    

    একটি ব্যক্তিগত কী পিইএম থেকে DER ফর্ম্যাটে রূপান্তর করতে:

      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
    

    আরএসএপি প্রজাতন্ত্রকী বিন্যাসে একটি ব্যক্তিগত কী এর সর্বজনীন অংশ আউটপুট করুন:

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

32
তবুও এটি (রফতানি করা) বাইনারি শংসাপত্র থেকে কী কী প্রাইভেট কী পাবেন তা প্রশ্নের উত্তর দেয় না ।
bbaassssiiee

আপনাকে ধন্যবাদ, ভাবছি যদি আমার কাছে একটি প্রাইভেট কী এবং শংসাপত্র রয়েছে এমন একটি পিইএম থাকে তবে আমি কীভাবে কেবল শংসাপত্র পেতে পারি? আমি জানি যে আমি পাঠ্য সম্পাদক ব্যবহার করে এটি থেকে শংসাপত্রের অংশটি অনুলিপি করতে পারি, তবে আমি জানতে চাই যে কোনও
ওপেনসেল

46

একটি পেম ফাইল থেকে কী এবং শংসাপত্রটি বের করতে:

কী বের করুন

openssl pkey -in foo.pem -out foo.key

কীটি বের করার আরেকটি পদ্ধতি ...

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

সিএ চেইন সহ সমস্ত শংসাপত্রগুলি বের করুন

openssl crl2pkcs7 -nocrl -certfile foo.pem | openssl pkcs7 -print_certs -out foo.cert

প্রথম পাঠ্যক্রমের সার্টিফিকেট হিসাবে DER হিসাবে বের করুন

openssl x509 -in foo.pem -outform DER -out first-cert.der

7
ওপেনএসএল x509 -আউটফর্ম ডার-ইন সি: \ ব্যবহারকারীগণ reg গ্রেগ ss। এসএসএস \ e360_stork_listener.pem -out সি: \ ব্যবহারকারীগণ \ গ্রেগ \ .ssh \ e360_stork_listener.crt শংসাপত্র লোড করতে অক্ষম: 4294956672: ত্রুটি: 0906D0bC PEM_Rout কোনও প্রারম্ভিক রেখা নেই: pem_lib.c: 708: প্রত্যাশী:
বিশ্বাসযোগ্য

5

0. পূর্বশর্ত : openssl ইনস্টল করা উচিত। উইন্ডোজ এ, Git Bashইনস্টল করা আছে, চেষ্টা করুন! বিকল্প বাইনারি পাওয়া যাবে এখানে।

1. .keyথেকে এক্সট্রাক্ট .pem:

openssl pkey -in cert.pem -out cert.key

2. .crtথেকে এক্সট্রাক্ট .pem:

openssl crl2pkcs7 -nocrl -certfile cert.pem | openssl pkcs7 -print_certs -out cert.crt

1

একটি .crt শংসাপত্র সংরক্ষণ করে .. pem বিন্যাসে। সুতরাং একটি .pem, যখন এটির অন্যান্য জিনিস যেমন সিএসআর (শংসাপত্র স্বাক্ষর করার অনুরোধ) থাকতে পারে, একটি ব্যক্তিগত কী, একটি পাবলিক কী বা অন্যান্য সার্টি, যখন এটি কেবল একটি সার্টি সঞ্চয় করে থাকে, এটি একটি সিআরটি হিসাবে একই জিনিস।

পেম হ'ল একটি বেস 64 এনকোডড ফাইল যা প্রতিটি বিভাগের মধ্যে শিরোলেখ এবং পাদচরণ থাকে।

একটি নির্দিষ্ট বিভাগ নিষ্কাশন করতে, নীচের মতো পার্ল স্ক্রিপ্ট সম্পূর্ণ বৈধ, তবে ওপেনসেল কমান্ডগুলির কিছু ব্যবহার করতে নির্দ্বিধায় মনে হয়।

 perl -ne "\$n++ if /BEGIN/; print if \$n == 1 && /BEGIN/.../END/;" mydomain.pem

যেখানে == 1 আপনার কোন বিভাগে পরিবর্তন করা যেতে পারে। অবশ্যই আপনি যদি সঠিকভাবে শিরোনাম এবং পাদচরণ জেনে থাকেন এবং ফাইলের মধ্যে কেবলমাত্র একজন রয়েছেন (সাধারণত যদি আপনি কেবলমাত্র সার্ট এবং কীটি সেখানে রেখে দেন) তবে আপনি এটিকে সহজ করতে পারবেন:

 perl -ne "print if /^-----BEGIN CERTIFICATE-----\$/.../END/;" mydomain.pem

0

আপনি যদি এই প্রশ্নটি জিজ্ঞাসা করে থাকেন কারণ আপনি ব্যবহার করছেন mkcertতবে কৌশলটি হ'ল .pemফাইলটি শংসাপত্র এবং-key.pem ফাইলটি কী।

(আপনার রূপান্তর করার দরকার নেই, কেবল চালান mkcert yourdomain.dev otherdomain.dev)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.