कीस्टोर, सर्टिफिकेट और उपनाम से समझना


95

क्या कीस्टोरी वास्तविक प्रमाण पत्र है, या उपनाम प्रमाण पत्र है?

अगर मैं अपने ऐप पर हस्ताक्षर करने के लिए एक अलग उपनाम का उपयोग करता हूं, तो क्या यह बाजार पर अपडेट गड़बड़ कर देगा? या मुझे चीजों को गड़बड़ाने के लिए एक अलग कीस्टॉर के साथ अपने ऐप पर हस्ताक्षर करने की आवश्यकता होगी? और उर्फ ​​के तहत जानकारी कहां से देखी जा सकती है?

जवाबों:


127

कीटेल फाइल जनरेट की गई कीटेल फाइल निजी और सार्वजनिक कुंजी के जोड़े को स्टोर करती है। कीस्टोर में संग्रहीत प्रत्येक जोड़ी या प्रविष्टि को एक अद्वितीय उपनाम द्वारा संदर्भित किया जाता है। संक्षेप में:

कीस्टोर प्रविष्टि = निजी + सार्वजनिक कुंजी जोड़ी = एक उपनाम द्वारा पहचाना गया

कीस्टोर अपने व्यक्तिगत पासवर्ड के साथ प्रत्येक निजी कुंजी की सुरक्षा करता है, और एक (संभवतः अलग) पासवर्ड के साथ पूरे कीस्टोर की अखंडता की भी रक्षा करता है।

उदाहरण के लिए, जब आप किसी Android Android उपकरण के निर्यात हस्ताक्षरित एप्लिकेशन पैकेज विकल्प का उपयोग करके Android एप्लिकेशन पर हस्ताक्षर करते हैं, तो आपको पहले कीस्टोर का चयन करने के लिए कहा जाता है, और फिर उस कीस्टोर से एकल उपनाम / प्रविष्टि / जोड़ी का चयन करने के लिए कहा जाता है। कीस्टोर और चुने हुए अन्य दोनों के लिए पासवर्ड प्रदान करने के बाद, एप्लिकेशन पर हस्ताक्षर किए जाते हैं और उस उपनाम के लिए सार्वजनिक कुंजी (प्रमाण पत्र) को एपीके में एम्बेड किया जाता है।

अब अपने प्रश्न का उत्तर देने के लिए, आप केवल उस एप्लिकेशन को एक अपडेट जारी कर सकते हैं, जिसे उसी उपनाम के साथ फिर से अपडेट पर हस्ताक्षर करके उपनाम 'फू' के साथ हस्ताक्षरित किया गया था। कीस्टोरी खोना जहां आपका उपनाम संग्रहीत है, आपको अपने ऐप के अपडेटेड संस्करण को जारी करने से रोक देगा।

हालाँकि, एक ऐप को नए उपनाम के साथ साइन इन करने का एक तरीका है, लेकिन इसमें की -स्टोर में कीटेल-कीक्लाइन का उपयोग करके किसी अन्य उपनाम को क्लोन करना शामिल है :

एक नया कीस्टोर प्रविष्टि बनाता है, जिसमें मूल प्रविष्टि के समान निजी कुंजी और प्रमाणपत्र श्रृंखला होती है।

मूल प्रविष्टि को उर्फ ​​द्वारा पहचाना जाता है (जो "mykey" के लिए डिफॉल्ट करता है यदि प्रदान नहीं किया गया है)। नई (गंतव्य) प्रविष्टि को dest_alias द्वारा पहचाना जाता है। यदि कमांड लाइन पर कोई गंतव्य उपनाम नहीं दिया गया है, तो उपयोगकर्ता को इसके लिए प्रेरित किया जाता है।

यदि निजी कुंजी पासवर्ड कीस्टोर पासवर्ड से अलग है, तो प्रवेश केवल तभी क्लोन किया जाएगा जब एक वैध कीपास की आपूर्ति की जाती है। यह पासवर्ड है जिसका उपयोग उपनाम से जुड़ी निजी कुंजी की सुरक्षा के लिए किया जाता है। यदि कमांड लाइन पर कोई कुंजी पासवर्ड नहीं दिया गया है, और निजी कुंजी पासवर्ड कीस्टोर पासवर्ड से अलग है, तो उपयोगकर्ता को इसके लिए संकेत दिया जाता है। यदि वांछित है, तो क्लोन की गई प्रविष्टि में निजी कुंजी को अलग पासवर्ड से संरक्षित किया जा सकता है। यदि कमांड लाइन पर कोई विकल्प नहीं दिया गया है, तो उपयोगकर्ता को नई प्रविष्टि के पासवर्ड के लिए संकेत दिया जाता है (और इसे क्लोन प्रविष्टि की निजी कुंजी के समान होने के लिए चुन सकते हैं)।

अधिक जानकारी:

http://download.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html

http://developer.android.com/guide/publishing/app-signing.html


3
देव साइट आपके सभी ऐप्स के लिए एक ही प्रमाणपत्र का उपयोग करने का सुझाव देती है। तो क्या इसका मतलब है, जब तक मैं एक ही कीस्टोर का उपयोग कर रहा हूं, मैं किसी भी पासवर्ड के साथ किसी अन्य उपनाम का उपयोग कर सकता हूं और यह अपडेट को गड़बड़ नहीं करेगा, क्योंकि यह सिर्फ एक संदर्भ है? वास्तविक कीस्टोर महत्वपूर्ण हिस्सा है?
रोजर

1
मैंने अपने उत्तर को अधिक सटीक होने के लिए फिर से लिखा। संक्षेप में, आपको अपने एप्लिकेशन के सभी अपडेट पर हस्ताक्षर करने के लिए वास्तव में उसी उपनाम का उपयोग करना होगा।
जूलियो गोर्गे

2
@ Julio तो सबसे अच्छा अभ्यास आप सभी अलग-अलग ऐप के लिए एक ही उपनाम का उपयोग करना चाहते हैं जिसे आप प्रकाशित करना चाहते हैं, जैसा कि देव साइट बताती है? मुझे आपके सभी ऐप्स के लिए एक अलग उपनाम बनाने का कोई कारण नहीं दिख रहा है।
टोनी चैन

@ JulioGorgé- अरे, मैं सिर्फ यह जानना चाहता था कि आर अलियास नाम मामला संवेदनशील है .. ??
नाम निलय

@ JulioGorgé क्या आपका मतलब समान उपनाम या समान कुंजी है। उपनाम केवल एक नाम है, मैं उपनाम का नाम बदल सकता हूं। आप एप्लिकेशन मैच में कुंजी (सार्वजनिक कुंजी विशिष्ट होने के लिए) के लिए एक अपडेट जारी कर सकते हैं।
धीरज भास्कर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.