बैग विशेषताओं के बिना पीईएम प्रारूप में पीएफएक्स से सीए प्रमाण पत्र श्रृंखला कैसे निर्यात करें


31

मेरे पास एक PKCS12 फ़ाइल है जिसमें पूर्ण प्रमाणपत्र श्रृंखला और निजी कुंजी है। मैं एक आवेदन के लिए इसे 3 फ़ाइलों में तोड़ने की जरूरत है। मुझे जिन 3 फाइलों की जरूरत है वे इस प्रकार हैं (पीईएम प्रारूप में):

  • एक अनियंत्रित कुंजी फ़ाइल
  • एक क्लाइंट प्रमाणपत्र फ़ाइल
  • CA प्रमाणपत्र फ़ाइल (रूट और सभी मध्यवर्ती)

यह एक सामान्य कार्य है जिसे मुझे करना है, इसलिए मैं आउटपुट के किसी भी मैनुअल संपादन के बिना ऐसा करने का एक तरीका ढूंढ रहा हूं।

मैंने निम्नलिखित कोशिश की:

openssl pkcs12 -in <filename.pfx> -nocerts -nodes -out <clientcert.key>
openssl pkcs12 -in <filename.pfx> -clcerts -nokeys -out <clientcert.cer>
openssl pkcs12 -in <filename.pfx> -cacerts -nokeys -chain -out <cacerts.cer>

यह ठीक काम करता है, हालांकि, आउटपुट में बैग विशेषताएँ शामिल हैं, जो कि एप्लिकेशन को पता नहीं है कि कैसे संभालना है।

कुछ खोज के बाद मैंने बैग विशेषताओं को छीनने के लिए x509 के माध्यम से परिणाम पारित करने का एक सुझाया समाधान पाया।

openssl x509 -in <clientcert.cer> -out <clientcert.cer>

यह काम करता है, लेकिन मैं कैसर्ट फ़ाइल पर एक समस्या में चला जाता हूं। आउटपुट फ़ाइल में केवल श्रृंखला में 3 सेरट्स में से एक है।

क्या pkcs12 कमांड के आउटपुट में बैग विशेषताओं को शामिल करने से बचने का कोई तरीका है, या x509 कमांड आउटपुट के लिए सभी प्रमाणपत्रों को शामिल करने का एक तरीका है? इसके अतिरिक्त, यदि इसे x509 के माध्यम से चलाना सबसे सरल उपाय है, तो क्या फाइल को दो बार लिखने के बजाय pkcs12 से x509 में आउटपुट को पाइप करने का कोई तरीका है?

जवाबों:


36

आखिरकार जो समाधान मुझे मिला, वह था इसे सेड के माध्यम से पाइप करना।

openssl pkcs12 -in <filename.pfx> -nocerts -nodes | sed -ne '/-BEGIN PRIVATE KEY-/,/-END PRIVATE KEY-/p' > <clientcert.key>
openssl pkcs12 -in <filename.pfx> -clcerts -nokeys | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > <clientcert.cer>
openssl pkcs12 -in <filename.pfx> -cacerts -nokeys -chain | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > <cacerts.cer>

धन्यवाद! इसने मुझे आज कुछ समय बचाया! ;-)
जिम पी।

आपको बहुत - बहुत धन्यवाद!
पॉलजे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.