ওপেনএসএসএল ব্যবহার করে পিকেসিএস # 12 শংসাপত্রটি পিইএমে রূপান্তর করা হচ্ছে


212

আমার উইন্ডোজ on এ ওপেনএসএসএল x64 রয়েছে যা আমি গুগল কোডের ওপেনসেল-উইন্ডোজ থেকে ডাউনলোড করেছি । আমি চালানোর চেষ্টা করছি:

openssl pkcs12 -export -in "path.p12" -out "newfile.pem" 

তবে আমি একটি ত্রুটি পেয়েছি

unable to load private key

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


@jww আমি মনে করি যে এই প্রশ্নটি 3 বছরেরও বেশি পুরানো হয়েছে যে অফ-টপিক পতাকাটি সংকেত করতে কিছুটা দেরি হয়েছে।
ডিন ম্যাকগ্রিগোর

কেবল একটি আনুষ্ঠানিকতা তাই লোকেরা এর অফ-বিষয় জানে। লোকেরা একই অফ-টপিক প্রশ্ন জিজ্ঞাসা করছে এবং এই প্রশ্নের উদ্ধৃতি দিচ্ছে। যদি লোকেদের এর বিষয়বস্তু না বলা হয় তবে তারা স্ট্যাক ওভারফ্লোতে জিজ্ঞাসা করতে থাকবে।
jww

2
আপনার লিঙ্কযুক্ত মেটা প্রশ্নের উপরে @jwww সর্ববৃহত ভোটার উত্তর বলে যে "স্ট্যাক ওভারফ্লোতে ডিভপস প্রশ্নগুলি মঞ্জুরি দেওয়া উচিত।" আমি উজ্জীবিত হব, কারণ উত্তরটি আমার প্রয়োজনীয়তা পূরণ করেছে (যদিও, আমার কাছে আমি প্রোগ্রামিং করছিলাম না, আমি ইচ্ছা করলে উত্তরটি সহজেই কোনও প্রোগ্রামে অন্তর্ভুক্ত করতে পারতাম)
ডিস্ক্রিং

উত্তর:


534

চেষ্টা করুন:

openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys
openssl pkcs12 -in path.p12 -out newfile.key.pem -nocerts -nodes

এর পরে আপনার কাছে রয়েছে:

  • newfile.crt.pem এ শংসাপত্র
  • newfile.key.pem এ ব্যক্তিগত কী

একই ফাইলটিতে শংসাপত্র এবং কী রাখার জন্য নিম্নলিখিতটি ব্যবহার করুন

openssl pkcs12 -in path.p12 -out newfile.pem

আপনার যদি কমান্ড লাইন থেকে সরাসরি পিকেসিএস # 12 পাসওয়ার্ড ইনপুট করতে হয় (যেমন একটি স্ক্রিপ্ট), কেবল যুক্ত করুন -passin pass:${PASSWORD}:

openssl pkcs12 -in path.p12 -out newfile.crt.pem -clcerts -nokeys -passin 'pass:P@s5w0rD'

2
এটি কি সম্ভব যে প্রাইভেট কী এবং শংসাপত্র একই * .পিএম ফাইলে সংরক্ষণ করা হবে?
রামিস

18
হ্যাঁ, এটি হ'ল:openssl pkcs12 -in path.p12 -out newfile.pem
জিও-বি

2
আমদানি পাসওয়ার্ড চাইছে। এটা কি ?
সৌরভ চন্দ্র প্যাটেল

4
@ সৌরভচন্দ্রপ্যাটেল আপনার শংসাপত্রের পাসওয়ার্ড জানতে হবে। এটি কোনও ভুলে যাওয়া পাসওয়ার্ড পুনরুদ্ধার করার উপায় নয়
ডিন ম্যাকগ্রিগোর

2
নোডগুলি বাদ দিয়ে, ব্যক্তিগত কীটি নিষ্কাশিত হয় না।
মিক্সনার

22

আপনাকে কেবল একটি পাসওয়ার্ড সরবরাহ করতে হবে। আপনি নিম্নলিখিত সিনট্যাক্স সহ একই কমান্ড লাইনে এটি করতে পারেন:

openssl pkcs12 -export -in "path.p12" -out "newfile.pem" -passin pass:[password]

তারপরে আপনাকে আপনার আউটপুট ফাইলে প্রাইভেট কীটি এনক্রিপ্ট করার জন্য একটি পাসওয়ার্ডের জন্য অনুরোধ জানানো হবে। আপনি যদি ব্যক্তিগত কী এনক্রিপ্ট না করা (প্লেইন টেক্সট) রফতানি করতে চান তবে উপরের লাইনে "নোডস" বিকল্পটি অন্তর্ভুক্ত করুন:

openssl pkcs12 -export -in "path.p12" -out "newfile.pem" -passin pass:[password] -nodes

আরও তথ্য: http://www.openssl.org/docs/apps/pkcs12.html


16

আপনি যদি পাইথন ব্যবহার করতে পারেন তবে pyopensslমডিউলটি থাকলে এটি আরও সহজ । এটা এখানে:

from OpenSSL import crypto

# May require "" for empty password depending on version

with open("push.p12", "rb") as file:
    p12 = crypto.load_pkcs12(file.read(), "my_passphrase")

# PEM formatted private key
print crypto.dump_privatekey(crypto.FILETYPE_PEM, p12.get_privatekey())

# PEM formatted certificate
print crypto.dump_certificate(crypto.FILETYPE_PEM, p12.get_certificate())

ব্যবহার করে ফাইল খোলার কোনও কারণ আছে কি fileনা open? ভবিষ্যতে এটি ব্যবহার করতে যাচ্ছি আমি কেবল এটি বুঝতে চাই (
ওপেনশাকে

না, কোন পার্থক্য নেই। আপনি ঠিক করতে পারেন open("push.p12", 'rb').read()
কেভিশ

2
পাইথন 3 ব্যবহার করা হলে আপনি সম্ভবত ফাইলগুলিতে বিষয়বস্তু লিখতে চাইবেন: with open("push.pem", "wb") as fobj: fobj.write(crypto.dump_certificate(crypto.FILETYPE_PEM, p12.get_certificate()))শংসাপত্রটি লিখতে এবং with open("push.key", "wb") as fobj: fobj.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, p12.get_privatekey()))কীটির জন্য।
অ্যাডাম পার্কিন

আমি অজগরটি ৩. using ব্যবহার করছি, উপরের উদাহরণটি চালানোর সময় আমি নিম্নলিখিতটি পেয়েছি: "টাইপ এরির: টাইপ ইরির: আর্ট্রাইজারটি টাইপ 'চর' এর দৈর্ঘ্য 1 বাইট হতে হবে, স্ট্রিং নয়" আমার পাসওয়ার্ডে কি কিছু ভুল আছে
getaglow

কেবল একটি একক আদেশ প্রয়োগ না করে ফাইল তৈরি করা, কোড প্রবেশ করানো, এটি সংরক্ষণ করা এবং চালানো কেন "আরও সহজ"?
টোরবেন গুন্ডটোফেট-ব্রুন

3

আমার একটি পিএফএক্স ফাইল ছিল এবং এনজিআইএনএক্সের জন্য কেইওয়াই ফাইল তৈরি করার দরকার ছিল, তাই আমি এটি করেছি:

openssl pkcs12 -in file.pfx -out file.key -nocerts -nodes

তারপরে আমাকে কেইওয়াই ফাইলটি সম্পাদনা করতে হবে এবং সমস্ত সামগ্রী আপ করতে হবে -----BEGIN PRIVATE KEY-----। এর পরে এনজিআইএনএক্স কেইওয়াই ফাইলটি গ্রহণ করে।


0

আপনার যদি কোনও পাসওয়ার্ড ছাড়াই পিইএম ফাইলের প্রয়োজন হয় তবে আপনি এই সমাধানটি ব্যবহার করতে পারেন ।

কেবলমাত্র একই ফাইলটিতে প্রাইভেট কী এবং শংসাপত্রটি অনুলিপি করুন এবং পেস্ট করুন এবং .pem হিসাবে সংরক্ষণ করুন।

ফাইলটি দেখতে এমন হবে:

-----BEGIN PRIVATE KEY-----
............................
............................
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...........................
...........................
-----END CERTIFICATE-----

এইচটিটিপিএস-এর জন্য সিসকো ডিভাইসে শংসাপত্রগুলি আপলোড করার একমাত্র উপায়।

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