কেউ কি আমাকে কোনও ফাইল থেকে শংসাপত্র .crt
এবং ব্যক্তিগত কী .key
ফাইলগুলি উত্তোলন / রূপান্তর করার সঠিক উপায় / কমান্ড বলতে পারেন .pem
? আমি কেবল এগুলি পড়তে পারি যে তারা বিনিময়যোগ্য, তবে কীভাবে তা নয়।
কেউ কি আমাকে কোনও ফাইল থেকে শংসাপত্র .crt
এবং ব্যক্তিগত কী .key
ফাইলগুলি উত্তোলন / রূপান্তর করার সঠিক উপায় / কমান্ড বলতে পারেন .pem
? আমি কেবল এগুলি পড়তে পারি যে তারা বিনিময়যোগ্য, তবে কীভাবে তা নয়।
উত্তর:
আমি এটি ব্যবহার করে পেমকে ক্র্টে রূপান্তর করতে সক্ষম হয়েছি:
openssl x509 -outform der -in your-cert.pem -out your-cert.crt
openssl pkey -in mumble.pem -out mumble-key.pem
যদি ওপেনএসএসএল সংস্করণটি ১.০.০ এর চেয়ে পুরনো হয়, আরএসএ কী হিসাবে কীটি বের করতে:openssl rsa -in mumble.pem -out mumble-key.pem
unable to load certificate 140584440387400:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
Expecting: ANY PRIVATE KEY
ত্রুটি দেয়।
ওপেনএসএসএল ব্যবহার করে রূপান্তর করা
এই আদেশগুলি আপনাকে শংসাপত্র এবং কীগুলি বিভিন্ন ধরণের সার্ভার বা সফ্টওয়্যারগুলির সাথে উপযুক্ত করে তুলতে বিভিন্ন ফর্ম্যাটে রূপান্তর করতে দেয়।
একটি 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
একটি পেম ফাইল থেকে কী এবং শংসাপত্রটি বের করতে:
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
openssl x509 -in foo.pem -outform DER -out first-cert.der
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
একটি .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