मेरे पास एक 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 में आउटपुट को पाइप करने का कोई तरीका है?