আমি কীভাবে কোনও এসএসএল শংসাপত্র থেকে একটি পিইএম ফাইল তৈরি করতে পারি?
এইগুলি আমার কাছে পাওয়া ফাইলগুলি:
.crt
server.csr
server.key
আমি কীভাবে কোনও এসএসএল শংসাপত্র থেকে একটি পিইএম ফাইল তৈরি করতে পারি?
এইগুলি আমার কাছে পাওয়া ফাইলগুলি:
.crt
server.csr
server.key
উত্তর:
আপনার কীগুলি ইতিমধ্যে পিইএম ফর্ম্যাটে থাকতে পারে তবে কেবলমাত্র .crt বা .key দিয়ে নাম দেওয়া হয়েছে।
যদি ফাইলটির বিষয়বস্তু শুরু হয় -----BEGIN
এবং আপনি এটি কোনও পাঠ্য সম্পাদক এ পড়তে পারেন:
ফাইলটি বেস 64 ব্যবহার করে, যা ASCII এ পাঠযোগ্য, বাইনারি ফর্ম্যাট নয়। শংসাপত্রটি ইতিমধ্যে PEM ফর্ম্যাটে রয়েছে। কেবল এক্সটেনশনটি .pem এ পরিবর্তন করুন।
ফাইলটি যদি বাইনারি হয়:
সার্ভারের জন্য। সিআরটি, আপনি ব্যবহার করবেন
openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem
সার্ভার.কি এর জন্য, openssl rsa
এর জায়গায় ব্যবহার করুন openssl x509
।
সার্ভার.কি সম্ভবত আপনার ব্যক্তিগত কী এবং আরসিটি ফাইলটি ফিরে, স্বাক্ষরিত, x509 শংসাপত্র।
যদি এটি কোনও ওয়েব সার্ভারের জন্য হয় এবং আপনি পৃথক বেসরকারী এবং সর্বজনীন কী লোডিং নির্দিষ্ট করতে পারবেন না:
আপনি দুটি ফাইল একত্রীকরণ প্রয়োজন হতে পারে। এই ব্যবহারের জন্য:
cat server.crt server.key > server.includesprivatekey.pem
এই ফাইলটির সাথে আপনি যে অনুমতি রাখেন সেগুলি পরিচালনা করতে আপনাকে সহায়তা করার জন্য আমি "অন্তর্ভুক্তপ্রাইভেটকি" দিয়ে ফাইলগুলির নামকরণের পরামর্শ দেব।
cat server.crt server.key > server.pem
নিজের লাইনে প্রকাশ্য মন্তব্য দেবে না, এটি একটি প্রয়োজনীয়তা বলে মনে হচ্ছে। কুরিয়ার মেল আমাকে নরক দিয়েছে এবং কী ভুল হচ্ছে তা নির্ধারণ করতে আমার কয়েক ঘন্টা সময় লেগেছে।
server.crt server.key > server.includesprivatekey.pem
হ্যাপ্রোক্সি 1.5 সহ এসএসএলের জন্য বিড়ালটি দরকারী বলে কেবল একটি গোঁফ।
আমার একটি এডাব্লুএস ইএলবির জন্য এটি করা দরকার ছিল। ডায়ালগটি বহুবার মারধর করার পরে, অবশেষে আমার পক্ষে এটি কাজ করেছিল:
openssl rsa -in server.key -text > private.pem
openssl x509 -inform PEM -in server.crt > public.pem
ধন্যবাদ এনসিজেড
সম্পাদনা: যেমন @ ফ্লোয়েটারক বলেছেন
এডাব্লুএস এর সাথে ফাইলের নামটি আগেই চাপিয়ে দিতে ভুলবেন না file://
। সুতরাং এটি দেখতে দেখতে পাবেন:
aws iam upload-server-certificate --server-certificate-name blah --certificate-body file://path/to/server.crt --private-key file://path/to/private.key --path /cloudfront/static/
http://docs.aws.amazon.com/cli/latest/reference/iam/upload-server-certificate.html
file://
। সুতরাং এটির মতো দেখতে পাবেন:aws iam upload-server-certificate --server-certificate-name blah --certificate-body file://~/Desktop/server.crt --private-key file://~/Desktop/private.key --path /cloudfront/static/
একটি pem
ফাইলের শংসাপত্র এবং ব্যক্তিগত কী থাকে। এটি আপনার শংসাপত্র / কীটি যে ফর্ম্যাটটিতে রয়েছে তার উপর নির্ভর করে তবে সম্ভবত এটি এতটা সহজ:
cat server.crt server.key > server.pem
-bash: server.key.pem: Permission denied
অতিরিক্তভাবে, আপনি যদি পাসফ্রেজ চাইতে না চান তবে নিম্নলিখিত কমান্ডটি চালনা করতে হবে:
openssl rsa -in server.key -out server.key
-----BEGIN RSA PRIVATE KEY-----
এবং এর সাথে শুরু হওয়া কোনও ফাইল -----BEGIN ENCRYPTED PRIVATE KEY-----
চান, আপনি ব্যবহার করতে চান এটি হ'ল আদেশ।
আমি যা দেখেছি তা হ'ল: যদি আপনি শংসাপত্র তৈরি করতে ওপেনসেল ব্যবহার করেন তবে এটি crt ফাইলে টেক্সট অংশ এবং বেস 64 শংসাপত্র অংশ উভয়ই ক্যাপচার করে। কঠোর পেম ফর্ম্যাটটি ( উইকির সংজ্ঞা ) বলছে যে ফাইলটি শুরু হওয়া উচিত এবং শুরু হওয়া উচিত BEGIN এবং সমাপ্তির সাথে।
.pem - (গোপনীয়তা বর্ধিত মেল) বেস 64 এনকোডড ডিআর শংসাপত্র, "----- শুরু করুন শংসাপত্র -----" এবং "----- সমাপ্তি শংসাপত্র -----" এর মধ্যে আবদ্ধ
সুতরাং কিছু লাইব্রেরির জন্য (আমি জাভাতে এটির মুখোমুখি হয়েছি) যা কঠোর পেম ফর্ম্যাটের প্রত্যাশা করে, উত্পন্ন ক্র্টটি 'অবৈধ পেম ফর্ম্যাট' হিসাবে বৈধতা ব্যর্থ করবে।
এমনকি আপনি বিগইন / এন্ড সার্টিফিকেট দিয়ে লাইনগুলি অনুলিপি বা গ্রেপ করেও এবং এটি একটি সার্টি.পিএম ফাইলে পেস্ট করেন তবে এটি কাজ করা উচিত।
এখানে আমি যা করি তা খুব পরিষ্কার নয়, তবে এটি আমার জন্য কাজ করে, মূলত এটি শুরু হয় বিগইন লাইন থেকে পাঠ্যটি:
grep -A 1000 BEGIN cert.crt> cert.pem
openssl x509
। এটি একটি বৈধ PEM শংসাপত্র আউটপুট দেবে: cat certificate.crt | openssl x509 > certificate.pem
sed -n '/--BEGIN/,$p' cert.crt
এই ক্ষেত্রে কিছু চাই । "-N" ডিফল্ট দ্বারা কিছু প্রিন্ট না কিন্তু, এবং তারপর পরিসীমা অভিব্যক্তি বলে: যে ব্যাখ্যা /--BEGIN/,$
করে তোলে p
কমান্ড (মুদ্রণ) প্রথম লাইন যা রয়েছে মধ্যে লাইন প্রযোজ্য --BEGIN
এবং ফাইল শেষে ( $
)।
আমি গডাড্ডি থেকে অ্যাপ ইঞ্জিনে যাওয়ার চেষ্টা করছিলাম। কৌশলটি এই লাইনটি কী ব্যবহার করেছিল:
openssl req -new -newkey rsa:2048 -nodes -keyout name.unencrypted.priv.key -out name.csr
ঠিক যেমনটি, তবে আমার ডোমেন নামের সাথে নামটি প্রতিস্থাপন করা (এটি সত্যিকার অর্থেও গুরুত্বপূর্ণ নয়)
এবং আমি www.name.com হিসাবে সাধারণ নাম / সংস্থার সাথে সম্পর্কিত সমস্ত প্রশ্নের উত্তর দিয়েছি
তারপরে আমি সিএসআরটি খুললাম, এটি অনুলিপি করেছি, গো বাবাকে আটকান, তারপর এটি ডাউনলোড করে, আনজিপড করে, টার্মিনালের সাথে আনজিপড ফোল্ডারে নেভিগেট করে প্রবেশ করলাম:
cat otherfilegodaddygivesyou.crt gd_bundle-g2-g1.crt > name.crt
তারপরে আমি গুগল অ্যাপস কাস্টম ডোমেন এসএসএল নিয়ে সমস্যা থেকে এই নির্দেশাবলী ব্যবহার করেছি , যা ছিল:
openssl rsa -in privateKey.key -text > private.pem
openssl x509 -inform PEM -in www_mydomain_com.crt > public.pem
ঠিক তেমনই, প্রাইভেটকি.কি বাদে আমি নাম.ইউনক্রিপটেড.প্রাইভ.কি ব্যবহার করেছি এবং www_mydomain_com.crt এর পরিবর্তে, আমি name.crt ব্যবহার করেছি
তারপরে আমি "PEM এনকোডড X.509 শংসাপত্র" এর জন্য অ্যাডমিন কনসোলে সর্বজনীন.পেমটি আপলোড করেছি এবং "আনইনক্রিপ্টড পিএম এনকোডেড আরএসএ প্রাইভেট কী" এর জন্য প্রাইভেট.পিএম আপলোড করেছি ..
.. এবং অবশেষে এটি কাজ করে।
AWS এ একটি GoDaddy শংসাপত্র আপলোড করার চেষ্টা আমি বেশ কয়েকবার ব্যর্থ হয়েছিল, কিন্তু শেষ পর্যন্ত এটি বেশ সহজ ছিল। .Pem তে কোনও রূপান্তর করার দরকার নেই। আপনাকে কেবল চেইন প্যারামিটারে GoDaddy বান্ডিল শংসাপত্র অন্তর্ভুক্ত করা নিশ্চিত করতে হবে, যেমন
aws iam upload-server-certificate
--server-certificate-name mycert
--certificate-body file://try2/40271b1b25236fd1.crt
--private-key file://server.key
--path /cloudfront/production/
--certificate-chain file://try2/gdig2_bundle.crt
এবং আপনার আগের ব্যর্থ আপলোড মুছতে আপনি করতে পারেন
aws iam delete-server-certificate --server-certificate-name mypreviouscert
An error occurred (MalformedCertificate) when calling the UploadServerCertificate operation: Unable to parse certificate. Please ensure the certificate is in PEM format.
কমান্ডের নীচে চালান:
ক) openssl pkcs12 -in Certificates.p12 -out CertificateName.pem -nodes
,
খ) openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts
ওপেনএসএল পিকেসিএস 12 -টিতে আপনার YOUR_CERTIFICATE.p12 -আপনার YOUR_CERTIFICATE.pem-নোডস-ক্লার্কস
.pem
করুন.crt
এবং.key
।