2013-05-30 5 views
20

मैंने आईओएस/ओएसएक्स विकास के लिए एक महत्वपूर्ण जोड़ी + हस्ताक्षरित प्रमाणपत्र बनाया। कहीं भी, मैंने सार्वजनिक कुंजी खो दी जो मेरी निजी कुंजी के साथ जाती है। शायद ऐसा इसलिए है क्योंकि कीचेन एक्सेस निजी और सार्वजनिक कुंजी को एक साथ समूहित नहीं करता है, जैसे यह प्रमाणपत्र और निजी कुंजी के साथ करता है (यह इतना परेशान है! यह ऐसा क्यों नहीं करता है!)मैंने अपनी सार्वजनिक कुंजी खो दी। क्या मैं इसे एक निजी कुंजी से पुनर्प्राप्त कर सकता हूं?

कीचेन एक्सेस में, मैं कर सकता हूं अभी भी निजी कुंजी पर राइट-क्लिक करें -> "प्रमाणपत्र का अनुरोध करें"; लेकिन उपलब्ध सार्वजनिक कुंजी के बिना मुझे त्रुटि मिलती है "निर्दिष्ट आइटम कुंजीचैन में नहीं मिला"। मैं सुंदर सुनिश्चित करता हूं कि सार्वजनिक कुंजी पुनर्प्राप्त करने योग्य हैं, लेकिन कैसे? जाहिर है, कीचेन एक्सेस स्वचालित रूप से ऐसा करने के लिए पर्याप्त स्मार्ट नहीं है।

मुझे अंततः यह पता चला और कुछ दिनों के बाद मेरा जवाब सही होगा, जब तक कोई उत्तर में कुछ नया नहीं जोड़ता।

उत्तर

54

मुझे याद आया कि यह .pem फ़ाइलों पर openssl के साथ ऐसा करने में सक्षम है, इसलिए यह मेरी दिशा है।

  • कीचेन एक्सेस में, निजी कुंजी को निर्यात करें जैसे कि private.p12। एक पासवर्ड लागू करें, या नहीं।
  • इसे .pem: openssl pkcs12 -in private.p12 -out private.pem पर कनवर्ट करें। पिछले चरण से पासवर्ड दर्ज करें। आपको .pem पर पासवर्ड लागू करने के लिए मजबूर होना पड़ता है।
  • सार्वजनिक भाग निकालें: openssl rsa -in private.pem -pubout > public.pem। पिछले चरण से पासवर्ड दर्ज करें।
  • कीचेन एक्सेस में आयात करें: security import public.pem -k login.keychain। यदि आप एक कीचेन निर्दिष्ट नहीं करते हैं, तो आयात पूरा होने लगता है लेकिन मुझे यह नहीं मिला कि आइटम कहां रखा गया था।
  • कीचेन एक्सेस में, "आयातित सार्वजनिक कुंजी" के लिए लॉगिन कीचेन देखें। इसका नाम बदलें और वांछित स्थान पर जाएं।
  • अपने आप को बाद में साफ करें, खासकर उन .p12 और .pem निजी कुंजी जिनमें कोई या खराब पासवर्ड नहीं है।
+3

चरण 3 मेरे लिए असफल रहा क्योंकि निजी.pem में प्रमाणपत्र है। यह चरण 2 बदलने के बाद काम करता है: openssl pkcs12 -in priv.p12 -nocerts -nodes -out priv.pem – jlukanta

+3

यदि आप प्रमाणपत्र सहित बिना निजी कुंजी निर्यात करना चाहते हैं, तो सुनिश्चित करें कि आप 'सभी आइटम' श्रेणी से निजी कुंजी निर्यात करें । कीचेन पर 'कीज' श्रेणी से कुंजी निर्यात न करें। निजी कुंजी से संबंधित प्रमाणपत्र भी शामिल किया जाएगा भले ही आपने इसे नहीं चुना है। – jlukanta

+0

आप एक कीचेन आइटम का "नाम बदलें" कैसे करते हैं? – lhunath

संबंधित मुद्दे