.Key এবং .crt ফাইল থেকে .pem ফাইল কীভাবে পাবেন?


601

আমি কীভাবে কোনও এসএসএল শংসাপত্র থেকে একটি পিইএম ফাইল তৈরি করতে পারি?

এইগুলি আমার কাছে পাওয়া ফাইলগুলি:

  • .crt
  • server.csr
  • server.key

2
অন্য উপায় রাউন্ড: রূপান্তর .pemকরুন .crtএবং.key
কেনারব

উত্তর:


799

আপনার কীগুলি ইতিমধ্যে পিইএম ফর্ম্যাটে থাকতে পারে তবে কেবলমাত্র .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

এই ফাইলটির সাথে আপনি যে অনুমতি রাখেন সেগুলি পরিচালনা করতে আপনাকে সহায়তা করার জন্য আমি "অন্তর্ভুক্তপ্রাইভেটকি" দিয়ে ফাইলগুলির নামকরণের পরামর্শ দেব।


2
সার্ভার.কির ফর্ম্যাটটি পরীক্ষা করুন। আমি কেবল ধরে নিয়েছিলাম এটি আরএসএ ছিল। তবে ফাইলটির প্রথম পংক্তিটি পড়া আপনাকে সম্ভবত এটি বলবে।
ম্যাক্সওয়েলব

10
কেবলমাত্র একটি মাথা আপ যা cat server.crt server.key > server.pemনিজের লাইনে প্রকাশ্য মন্তব্য দেবে না, এটি একটি প্রয়োজনীয়তা বলে মনে হচ্ছে। কুরিয়ার মেল আমাকে নরক দিয়েছে এবং কী ভুল হচ্ছে তা নির্ধারণ করতে আমার কয়েক ঘন্টা সময় লেগেছে।
গ্রাহাম ওয়াল্টার

1
ধন্যবাদ গ্রাহাম বিভিন্ন সরঞ্জাম পৃথকভাবে ফাইল উত্পন্ন করবে এবং শেষ পর্যন্ত কিছু যাচাইকরণ ভাল। আমি যখন এই পদক্ষেপগুলি সম্পাদন করেছি, উদাহরণস্বরূপ, ফাইলগুলি একটি নতুন লাইন দিয়ে শেষ হয়েছিল।
ম্যাক্সওয়েলব

একসাথে .crt এবং .key ফাইলগুলি যুক্ত করার বিষয়ে পরামর্শটি খুব সহায়ক ছিল was আমি আমার শংসাপত্রটি স্ট্যান্ডেল 3 দিয়ে ব্যবহার করতে চেয়েছিলাম তবে কী ফাইলটি নির্দিষ্ট করার কোনও উপায় নেই। কনকনেটেশন ব্যবহার করে কাজ করেছেন। (আসলে, যেহেতু স্টান্ডল 3 একটি পার্ল প্রোগ্রাম, তাই আমি নিজেই মূল ফাইলটি পড়ার জন্য এটিতে একটি বিকল্প যুক্ত করেছিলাম later তবে, যেহেতু আমি পরে দেখলাম যে উপসংহারটি কাজ করেছে, তাই আমি স্টানেল 3কে তার মূল কোডটিতে ফিরে পেয়েছি))
এলএস

2
server.crt server.key > server.includesprivatekey.pemহ্যাপ্রোক্সি 1.5 সহ এসএসএলের জন্য বিড়ালটি দরকারী বলে কেবল একটি গোঁফ।
jimm101

224

আমার একটি এডাব্লুএস ইএলবির জন্য এটি করা দরকার ছিল। ডায়ালগটি বহুবার মারধর করার পরে, অবশেষে আমার পক্ষে এটি কাজ করেছিল:

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


19
এডাব্লুএস এর সাথে ফাইলের নামটি পূর্বে চাপতে ভুলবেন না 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/
ভাসমান

1
আপনার ইনপুটটি একটি পেম ফাইল হলে দ্বিতীয় কমান্ড কিছুই করে না তাই এটি ধরে নেওয়া, আপনার কেবল প্রথম কমান্ডের দরকার আছে
ক্রিস্টোফার

অসাধারণ! এটি আমার জন্য ভাল কাজ করা হয়! আপনার কোডের লাইনগুলি ব্যবহার করে স্রেফ আমার .key এবং .crt ফাইলগুলিকে .pem এ রূপান্তরিত করেছিলাম এবং তারপরে আমি অ্যাডাব্লুএস কনসোলের মাধ্যমে (অনুলিপি / পেস্ট) আপলোড করেছি। ধন্যবাদ!
দিয়েগো ডি

79

একটি pemফাইলের শংসাপত্র এবং ব্যক্তিগত কী থাকে। এটি আপনার শংসাপত্র / কীটি যে ফর্ম্যাটটিতে রয়েছে তার উপর নির্ভর করে তবে সম্ভবত এটি এতটা সহজ:

cat server.crt server.key > server.pem

আমি পেতে -bash: server.key.pem: Permission denied
থাকি

2
@ টিকিউ: এর অর্থ আপনাকে সেই ফাইলটি পড়তে বা লেখার অনুমতি নেই।
sth

আপনাকে ধন্যবাদ @sth অনুমতি চাইতে হবে। তবে আমি এটি sudo কমান্ড দিয়ে করছিলাম
tq

8
@tq: বিড়াল সার্ভার.সিআর সার্ভার.কি | sudo tee server.pem
dimir

2
নিউলাইনগুলি হারিয়ে যাওয়ার জন্য নজরদারি করা আপনার পেম ফাইলটি ----- সমাপ্তি প্রত্যয় ---------- শুরু করুন প্রত্যয় -----
ওল্ফগ্যাং ফাহল

24

অতিরিক্তভাবে, আপনি যদি পাসফ্রেজ চাইতে না চান তবে নিম্নলিখিত কমান্ডটি চালনা করতে হবে:

openssl rsa -in server.key -out server.key

9
আপনি যদি কোনও ফাইল দিয়ে শুরু করতে চান -----BEGIN RSA PRIVATE KEY-----এবং এর সাথে শুরু হওয়া কোনও ফাইল -----BEGIN ENCRYPTED PRIVATE KEY-----চান, আপনি ব্যবহার করতে চান এটি হ'ল আদেশ।
ফিলিপ গারবার

18

এটি .pem ফাইল তৈরির সেরা বিকল্প

openssl pkcs12 -in MyPushApp.p12 -out MyPushApp.pem -nodes -clcerts

4

আমি যা দেখেছি তা হ'ল: যদি আপনি শংসাপত্র তৈরি করতে ওপেনসেল ব্যবহার করেন তবে এটি crt ফাইলে টেক্সট অংশ এবং বেস 64 শংসাপত্র অংশ উভয়ই ক্যাপচার করে। কঠোর পেম ফর্ম্যাটটি ( উইকির সংজ্ঞা ) বলছে যে ফাইলটি শুরু হওয়া উচিত এবং শুরু হওয়া উচিত BEGIN এবং সমাপ্তির সাথে।

.pem - (গোপনীয়তা বর্ধিত মেল) বেস 64 এনকোডড ডিআর শংসাপত্র, "----- শুরু করুন শংসাপত্র -----" এবং "----- সমাপ্তি শংসাপত্র -----" এর মধ্যে আবদ্ধ

সুতরাং কিছু লাইব্রেরির জন্য (আমি জাভাতে এটির মুখোমুখি হয়েছি) যা কঠোর পেম ফর্ম্যাটের প্রত্যাশা করে, উত্পন্ন ক্র্টটি 'অবৈধ পেম ফর্ম্যাট' হিসাবে বৈধতা ব্যর্থ করবে।

এমনকি আপনি বিগইন / এন্ড সার্টিফিকেট দিয়ে লাইনগুলি অনুলিপি বা গ্রেপ করেও এবং এটি একটি সার্টি.পিএম ফাইলে পেস্ট করেন তবে এটি কাজ করা উচিত।

এখানে আমি যা করি তা খুব পরিষ্কার নয়, তবে এটি আমার জন্য কাজ করে, মূলত এটি শুরু হয় বিগইন লাইন থেকে পাঠ্যটি:

grep -A 1000 BEGIN cert.crt> cert.pem


1
অন্য বিকল্পটি হ'ল অন-কড়া শংসাপত্রটি পাস করা openssl x509। এটি একটি বৈধ PEM শংসাপত্র আউটপুট দেবে: cat certificate.crt | openssl x509 > certificate.pem
T0xicCode

আপনি যদি "বিগিন" থেকে ফাইলের শেষের দিকে সবকিছু পেতে চান তবে এটি সেডের কাজ। বিশেষত, আপনি sed -n '/--BEGIN/,$p' cert.crtএই ক্ষেত্রে কিছু চাই । "-N" ডিফল্ট দ্বারা কিছু প্রিন্ট না কিন্তু, এবং তারপর পরিসীমা অভিব্যক্তি বলে: যে ব্যাখ্যা /--BEGIN/,$করে তোলে pকমান্ড (মুদ্রণ) প্রথম লাইন যা রয়েছে মধ্যে লাইন প্রযোজ্য --BEGINএবং ফাইল শেষে ( $)।
dannysauer

4

আমি গডাড্ডি থেকে অ্যাপ ইঞ্জিনে যাওয়ার চেষ্টা করছিলাম। কৌশলটি এই লাইনটি কী ব্যবহার করেছিল:

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 শংসাপত্র" এর জন্য অ্যাডমিন কনসোলে সর্বজনীন.পেমটি আপলোড করেছি এবং "আনইনক্রিপ্টড পিএম এনকোডেড আরএসএ প্রাইভেট কী" এর জন্য প্রাইভেট.পিএম আপলোড করেছি ..

.. এবং অবশেষে এটি কাজ করে।


4

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.
আদম রাউদোনিস

4
  1. আপেল আইডি দ্বারা অস্থায়ী পোর্টাল থেকে শংসাপত্র ডাউনলোড করুন,
  2. কী চেইন থেকে শংসাপত্র রফতানি করুন এবং নাম দিন (শংসাপত্রগুলি। পি 12),
  3. টার্মিনাল এবং গেটো ফোল্ডারটি খুলুন যেখানে আপনি সার্টিফিকেট.পি 12 ফাইলের উপরে সংরক্ষণ করেন,
  4. কমান্ডের নীচে চালান:

    ক) openssl pkcs12 -in Certificates.p12 -out CertificateName.pem -nodes,

    খ) openssl pkcs12 -in Certificates.p12 -out pushcert.pem -nodes -clcerts

  5. আপনার .pem ফাইল প্রস্তুত "pushcert.pem" ready

0
  • টার্মিনাল খুলুন
  • আপনার শংসাপত্রটি যেখানে অবস্থিত ফোল্ডারে যান।
  • আপনার শংসাপত্রের সাথে নামটি প্রতিস্থাপন করে নীচের কমান্ডটি কার্যকর করুন।

ওপেনএসএল পিকেসিএস 12 -টিতে আপনার YOUR_CERTIFICATE.p12 -আপনার YOUR_CERTIFICATE.pem-নোডস-ক্লার্কস

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