आमतौर पर अपने .cer फ़ाइलें बनाने के लिए अपलोड करते हैं, तो आप ऐसा कर सकते हैं राइट-क्लिक करके कीचेन पहुंच में एक मौजूदा निजी कुंजी और अनुरोध प्रमाणपत्र चुनने से कोई प्रमाणपत्र प्राधिकरण से "आपका कुंजी के नाम के साथ "।
दुर्भाग्यवश, यह "केशिन में निर्दिष्ट आइटम नहीं मिला" के साथ असफल हो जाएगा जब तक कि आप भी में अपने कीचेन में संबंधित सार्वजनिक कुंजी न हो। इसके लिए कोई तकनीकी कारण नहीं है- सर्टिफिकेट साइनिंग अनुरोध (सीएसआर) सिर्फ एक निजी कुंजी से उत्पन्न किया जा सकता है- लेकिन कीचेन एक्सेस इसे समझ में नहीं आता है।
आपके पास दो विकल्प हैं।
निर्यात निजी कुंजी और सीएसआर उत्पन्न मैन्युअल
यह एक त्वरित विकल्प है कि सिर्फ एक सीएसआर कि आप एप्पल को अपलोड कर सकते हैं उत्पन्न होगा है। निर्यात आइटम ... -
- कीचेन पहुंच में निजी कुंजी चुनें, फिर फ़ाइल क्लिक करें।
- फ़ाइल को कहीं भी
.p12
प्रारूप में सहेजें, लेकिन पथ को याद रखें। ये निर्देश मानते हैं कि यह आपकी होम निर्देशिका में है और exported.p12
कहा जाता है। पासवर्ड खाली छोड़ दें।
टर्मिनल खोलें और दर्ज करें:
openssl req -new -key <(openssl pkcs12 -in ~/exported.p12 -nocerts -nodes -passin pass:"") > new.certSigningRequest
देखें [1] क्या हो रहा है के बारे में जानकारी के लिए इस पोस्ट के अंत में।
प्रत्येक प्रॉम्प्ट के लिए एंटर दबाएं (ऐप्पल इन मानों की परवाह नहीं करता है)। जब आप समाप्त कर लेंगे, तो आपके पास .certSigningRequest
ऐप्पल डेवलपर पोर्टल पर अपलोड करने के लिए उपयुक्त होगा।जब आप संबंधित प्रमाणपत्र डाउनलोड करते हैं, तो यह मूल निजी कुंजी के साथ जुड़ जाएगा।
exported.p12
फ़ाइल हटाएं, क्योंकि इसमें निजी कुंजी सामग्री है।
सार्वजनिक कुंजी को पुन: बनाएं ताकि कीचेन पहुंच खुश
है यह विकल्प एक लंबी अवधि ठीक आप सीधे कीचेन पहुंच से मूल कुंजी से CSRs उत्पन्न दूँगा कि है। ये निर्देश मानते हैं कि आप वर्तमान में कुंजीचैन एक्सेस का उपयोग नहीं कर सकते हैं क्योंकि आप अपनी निजी कुंजी के संबंधित सार्वजनिक संस्करण को याद कर रहे हैं। आप कीचेन एक्सेस में "कीज" श्रेणी पर जाकर और उसी नाम के साथ "निजी कुंजी" और "सार्वजनिक कुंजी" ढूंढकर इसकी जांच कर सकते हैं। निर्यात आइटम ... -
- कीचेन पहुंच में निजी कुंजी चुनें, फिर फ़ाइल क्लिक करें।
- फ़ाइल को कहीं भी
.p12
प्रारूप में सहेजें, लेकिन पथ को याद रखें। ये निर्देश मानते हैं कि यह आपकी होम निर्देशिका में है और exported.p12
कहा जाता है। पासवर्ड खाली छोड़ दें।
टर्मिनल खोलें और दर्ज करें:
openssl pkcs12 -in ~/exported.p12 -nocerts -nodes | openssl rsa -pubout > public.pem
देखें [2] क्या हो रहा है के बारे में जानकारी के लिए इस पोस्ट के अंत में।
आयात कीचेन पहुंच में यह सार्वजनिक कुंजी security
उपकरण का उपयोग:
security -v import public.pem -k ~/Library/Keychains/login.keychain
आप देखना चाहिए "1 कुंजी आयात किया।"
~/Library/Keychains/login.keychain
बदलें यदि आप इसे किसी अन्य कीचेन में आयात करना चाहते हैं। (आप देख सकते हैं कि प्रत्येक कीचेन पर - कीचेन सूची कुंजीचैन एक्सेस में संपादित करें)।
- ओपन कीचेन एक्सेस और "आयातित सार्वजनिक कुंजी" नामक सार्वजनिक कुंजी का पता लगाएं। इसे डबल-क्लिक करें और अपना नाम बदलकर अपनी मूल निजी कुंजी के समान ही बदलें।
exported.p12
और public.pem
हटाएं।
अब आप राइट क्लिक करें एक सीएसआर उत्पन्न करने के लिए "आपका कुंजी का नाम" के साथ मूल निजी कुंजी और अनुरोध चुनें कोई प्रमाणपत्र प्राधिकरण से एक प्रमाण पत्र।
स्पष्टीकरण
[1] यह आदेश, टूट:
openssl req -new # Generate a new certificate signing request
-key # Instead of generating a key, use an existing one
<( # Put the output of the following command in a temporary file
# (a Bash feature, not specific to OpenSSL)
openssl pkcs12 -in ~/exported.p12 # Read keys from the specified PKCS12 file
-nocerts # Don't output the certificate contained in the file
-nodes # Output the private key from the file
-passin pass:"" # The password for the container is blank
)
> new.certSigningRequest # Write the generated CSR to a file
[2] दूसरा आदेश, टूट:
openssl pkcs12 -in ~/exported.p12 # Read keys from the specified PKCS12 file
-nocerts -nodes # Output only the private key, no certificates
| openssl rsa -pubout # Compute the public key from a private key
> public.pem # Write the public key to a file
स्रोत
2014-02-12 23:34:17
मैं भी ऐसा ही किया इसके बाद के संस्करण के रूप में सुझाव दिया है, लेकिन त्रुटि होता है :("निर्दिष्ट आइटम कीचेन में नहीं मिला।" समस्या क्या हो सकती है? –
यहां एक ही मुद्दा है, लेकिन मुझे पता है कि मैंने पिछले साल कुछ समय काम किया था ... तो सेब ने अपने यादृच्छिक अपडेट में से कुछ में तोड़ दिया ..? – Captnwalker1
@ mysticboy59 इस त्रुटि को इस त्रुटि के बारे में विवरण के लिए देखें: http://stackoverflow.com/questions/16845169/error-when-trying-to-obtain-a-certificate-the- निर्दिष्ट-item-could-not-be- –