2012-07-09 8 views
5

मेरे .key फ़ाइल: ----- BEGIN RSA निजी कुंजी ----- MIIEpAIBAAKCAQEA1j6eGXbHpqigZ1K // wnuyr5v/L2jFm7dzTtHJx8ZoMQ4CbsGएंड्रॉइड में सॉकेट एसएसएल बनाने के लिए .key और .pem फ़ाइल का उपयोग कैसे करें? जैसे

की तरह मेरे .pem फ़ाइल: ----- BEGIN CERTIFICATE-- --- MIIE4zCCA8ugAwIBAgIDBOziMA0GCSqGSIb3DQEBBQUAMDwxCzAJBgNVBAYTAlVT

मैं कितने में यहाँ प्रमाणित के कदम पता नहीं है। मैं केवल एक आईपी और बंदरगाह के लिए एक एसएसएल सॉकेट बनाना चाहता हूं, और उस सॉकेट में डेटा भेज/प्राप्त करना चाहता हूं। मैंने कीस्टॉक का उपयोग करने की कोशिश की, लेकिन शायद मुझे इसके बारे में गहराई से समझ में नहीं आ रहा है, मैं हमेशा गलत हो जाता हूं।

कृपया मुझे एक गाइड, या नमूना कोड दें।

बहुत बहुत धन्यवाद।

उत्तर

0

एसएसएल कनेक्शन बनाते समय, आपको बस अपने सर्वर से कनेक्शन की अनुमति देने के लिए सॉकेट की आवश्यकता होती है, जो इसे विश्वसनीय स्रोत के रूप में सक्षम करती है। ऐसा करने के लिए, आपको अपने SSL प्रमाणपत्र को X509 प्रारूप में रखना होगा और फिर this article में बताए गए अनुसार अपना कनेक्शन बनाना होगा।

यहां a guide on generating X.509 certificates है।

+0

लिंक किया गया लेख एंड्रॉइड ट्रस्ट स्टोर सेट करने के बारे में है, न कि एचटीटीपीएस क्लाइंट ऑथ के लिए एक प्रमुख स्टोर, इसलिए इसका उपयोग सीमित है। इसके अलावा ओपी को (क्लाइंट) प्रमाणपत्र उत्पन्न करने की आवश्यकता नहीं है क्योंकि उसके पास पहले से ही .key और .pem फ़ाइल है। – Robert

9

मुझे लगता है कि .key और .pem फ़ाइल आपके क्लाइंट प्रमाणपत्र का प्रतिनिधित्व करती है जिसे आपको HTTPS क्लाइंट प्रमाणीकरण करने के लिए उपयोग करना है। दुर्भाग्य से जावा/एंड्रॉइड एक अलग प्रारूप पसंद करता है, इसलिए मैं आपको दोनों फाइलों को BKS फ़ाइल में आयात करने की सलाह देता हूं।

BKS फ़ाइल बनाना और मौजूदा .key + .pem फ़ाइल आयात करना Portecle GUI का उपयोग करके बहुत आसान है। Portecle शुरू करने के बाद फ़ाइल -> नई कीस्टोर -> बीकेएस का चयन करें। इसके बाद आप टूल्स -> आयात कुंजी जोड़े निष्पादित कर सकते हैं और .pem फ़ाइल का चयन कर सकते हैं। बाद में पोर्टेकल आपको .key फ़ाइल चुनने के लिए कहेगा।

आखिरकार कुंजी स्टोर को अपनी पसंद के पासवर्ड से सुरक्षित रखें।

बनाया गया BKS फ़ाइल अब आपके एंड्रॉइड ऐप में उपयोग की जा सकती है। उदाहरण के लिए देखें कोड इस सवाल में तैनात: Using client/server certificates for two way authentication SSL socket on Android

अद्यतन 2015/06/30: वर्णन ऊपर केवल Portecle 1.6 के लिए और इससे पहले कि काम करता है। संस्करण 1.7 और 1.8 के साथ आप एंड्रॉइड संगत कीस्टोर नहीं बना सकते हैं। पोर्टेकल 1.9 में प्रारूप BKS-V1 प्रारूप का उपयोग करें।

+0

यह अच्छा लिंक है। लेकिन मैं सब कुछ थ्रेड में बना देता हूं, और त्रुटि प्राप्त करता हूं: android.os.NetworkOnMainThreadException। क्या हमें इसके लिए धागा बनाने की ज़रूरत है? – Brave

+0

पोर्टेकल 1.9 (अन्य संस्करणों के बारे में निश्चित नहीं) में आपकी '.key' फ़ाइल * पासवर्ड सुरक्षित होना चाहिए *, अन्यथा पोर्टेकल आपको बताएगा कि कुंजी अमान्य है। –

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

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