यदि यह केवल अपने ग्राहक है और अपने सर्वर, आप (और चाहिए) कुछ भी खरीद बिना SSL का उपयोग कर सकते हैं। आप सर्वर और क्लाइंट को नियंत्रित करते हैं, इसलिए प्रत्येक को केवल एक प्रमाणपत्र पर भरोसा करना चाहिए, जो कि दूसरे से संबंधित है और आपको इस उद्देश्य के लिए सीए की आवश्यकता नहीं है।
यहां उच्च स्तरीय दृष्टिकोण है। एक स्व-हस्ताक्षरित सर्वर SSL प्रमाणपत्र बनाएं और अपने वेब सर्वर पर तैनात करें। आप इस उद्देश्य के लिए एंड्रॉइड एसडीके के साथ शामिल कीटोल का उपयोग कर सकते हैं। फिर एक स्व-हस्ताक्षरित क्लाइंट बनाएं और संसाधन के रूप में अपने एप्लिकेशन में शामिल एक कस्टम कीस्टोर में अपने एप्लिकेशन के भीतर तैनात करें (कीटोल इसे भी उत्पन्न करेगा)। क्लाइंट-साइड एसएसएल प्रमाणीकरण की आवश्यकता के लिए सर्वर को कॉन्फ़िगर करें और केवल आपके द्वारा जेनरेट किए गए क्लाइंट प्रमाणपत्र को स्वीकार करें। क्लाइंट-साइड सर्टिफिकेट का उपयोग स्वयं पहचानने के लिए क्लाइंट को कॉन्फ़िगर करें और केवल उस सर्वर के साइड सर्टिफिकेट को स्वीकार करें जिसे आपने अपने सर्वर पर इंस्टॉल किया है।
इसके लिए एक चरण-दर-चरण यहां वांछित की तुलना में एक लंबा उत्तर है। मैं चरणों में ऐसा करने का सुझाव दूंगा क्योंकि वेब पर संसाधन हैं, एंड्रॉइड में स्वयं-हस्ताक्षरित SSL प्रमाणपत्र, सर्वर और क्लाइंट दोनों पक्षों से कैसे निपटें। O'Reilly द्वारा प्रकाशित, मेरी पुस्तक, Application Security for the Android Platform में एक पूर्ण चलना भी है।
आप आम तौर पर sometype की एक कुंजी संग्रह में है कि प्रमाण पत्र/निजी कुंजी (एक KeyStore यदि आप Android का उपयोग कर रहे हैं) संग्रहीत करेंगे और उस कुंजीस्टोर एन्क्रिप्ट किया जाएगा। वह एन्क्रिप्शन पासवर्ड पर आधारित होता है, इसलिए आपको या तो अपने क्लाइंट में उस पासवर्ड को स्टोर करने की आवश्यकता होगी, या (2) उपयोगकर्ता को क्लाइंट ऐप शुरू करने पर पासवर्ड के लिए पूछें। आपको जो करना है वह आपके उपयोगकेस पर निर्भर करता है। यदि (2) स्वीकार्य है, तो आपने रिवर्स इंजीनियरिंग के खिलाफ अपने क्रेडेंशियल को सुरक्षित कर दिया है क्योंकि इसे एन्क्रिप्ट किया जाएगा और पासवर्ड कहीं भी संग्रहीत नहीं किया जाएगा (लेकिन उपयोगकर्ता को इसे हर बार टाइप करना होगा)। यदि आप (1) करते हैं, तो कोई व्यक्ति आपके क्लाइंट को इंजीनियर करने, पासवर्ड प्राप्त करने, कीस्टोर प्राप्त करने, निजी कुंजी और प्रमाणपत्र को डिक्रिप्ट करने में सक्षम होगा, और एक और क्लाइंट बनाएगा जो सर्वर से कनेक्ट करने में सक्षम होगा।
ऐसा करने के लिए आप कुछ भी नहीं कर सकते हैं; आप रिवर्स इंजीनियरिंग को अपने कोड को कड़ी मेहनत कर सकते हैं (obfuscation, आदि द्वारा) लेकिन आप इसे असंभव नहीं बना सकते हैं। आपको यह निर्धारित करने की आवश्यकता है कि आप इन दृष्टिकोणों के साथ कम करने का प्रयास कर रहे हैं और इसे कम करने के लिए कितना काम करना उचित है।
[इस] (http://www.javaranch.com/journal/200603/WSSecurity.html) जैसे कुछ के बारे में क्या? – loscuropresagio