यह प्रश्न किसी वेब एपीआई और प्रमाणपत्र समाप्ति के विरुद्ध क्लाइंट ऐप में SSL पिनिंग के उपयोग से संबंधित है।एसएसएल पिनिंग और प्रमाणपत्र समाप्ति
परिदृश्य:
मैं खुद example.com और एक उप डोमेन है, जहां एक एपीआई होस्ट किया गया है, जैसे कि: api.example.com
मैं उपयोग करना चाहते हैं एपीआई एसएसएल, इसलिए सबडोमेन के लिए एक एसएसएल प्रमाणपत्र बनाया गया है।
के बाद प्रमाण पत्र प्राप्त किया गया है, मेरे पास है:
- एक सार्वजनिक प्रमाणपत्र
- एक मध्यवर्ती प्रमाणन
- एक निजी कुंजी
यह मेरी समझ है कि मुझे इन प्रमाणपत्रों पर स्थापित है मेरा वेबसर्वर
मैं फिर अपने क्लाइंट ऐप को एपीआई से कनेक्ट करने की इच्छा करता हूं। मैन-इन-द-मिडिल स्टाइल हमलों के खिलाफ कम करने के लिए, मैं एसएसएल पिनिंग का उपयोग करना चाहता हूं, ताकि क्लाइंट केवल मेरे एपीआई के साथ संवाद करे, कोई इसे धोखा दे।
क्लाइंट ऐप में पिन करने के लिए, मेरे पास दो विकल्प हैं, या तो सार्वजनिक या इंटरमीडिएट प्रमाण पत्र के विरुद्ध पिन करें।
मान लें कि मैं इसे कार्यान्वित करता हूं।
क्या होता है जब पर प्रमाणपत्र प्रमाणपत्र api.example.com समाप्त हो जाता है?
यह मेरी समझ है कि क्लाइंट ऐप अब काम नहीं करेगा।
क्या मुझे फिर से सार्वजनिक/मध्यवर्ती/निजी वस्तुओं का एक पूरा सेट पुन: उत्पन्न करने की आवश्यकता है? और फिर ऐप में एक नया सार्वजनिक या इंटरमीडिएट प्रमाणपत्र डाला?
प्रश्न:
मैं अभी भी क्लाइंट ऐप की तरह काम करने के लिए जब तक api.example.com पर प्रमाण पत्र अद्यतन किया गया था। बेशक, क्लाइंट ऐप में एक नया प्रमाणपत्र लगाया जा सकता है, लेकिन रोल-आउट जैसी चीजें समय लेती हैं।
मैं इसे कैसे प्रबंधित कर सकता हूं?
मैं पढ़ा है गूगल हर महीने उनके प्रमाण पत्र अपडेट कर देता है, लेकिन किसी भी तरह सार्वजनिक कुंजी एक ही बनाए रखने में सफल: How to pin the Public key of a certificate on iOS
अगर यह संभव है, तो समाधान बस सर्वर से सार्वजनिक कुंजी को निकालने के लिए है और इसे स्थानीय रूप से संग्रहीत सार्वजनिक कुंजी के विरुद्ध जांचें ... लेकिन Google इसे कैसे करता है?
धन्यवाद
क्रिस