2012-08-18 13 views
15

मैं अपने एंड्रॉइड ऐप से एक नोड.जेएस आधारित टीएलएस सर्वर से कनेक्ट करने की कोशिश कर रहा हूं। स्वाभाविक रूप से यह विफल रहता है क्योंकि मैं एक स्व-हस्ताक्षरित प्रमाणपत्र का उपयोग कर रहा हूं।एंड्रॉइड टीएलएस कनेक्शन और स्वयं हस्ताक्षरित प्रमाणपत्र

क्या वैसे भी मैं अपने ऐप में प्रमाणपत्र जोड़ सकता हूं और एंड्रॉइड को किसी भी तरह विश्वास कर सकता हूं? नोट, मैं HTTPS का उपयोग नहीं कर रहा हूं, यह टीसीपी कनेक्शन पर एक टीएलएस है।

उत्तर

16

बहुत सारे पढ़ने के बाद, मैं एक जवाब के साथ आया।

एक बहुत अच्छा मार्गदर्शक यहाँ है: http://nelenkov.blogspot.no/2011/12/using-custom-certificate-trust-store-on.html

अब, के बाद से मैं HTTPS का उपयोग नहीं कर रहा हूँ, मैं नए कीस्ट्रोक के साथ एक साफ एसएसएल सॉकेट प्राप्त करने के लिए एक अलग दृष्टिकोण के साथ आने के लिए था:

KeyStore store = KeyStore.getInstance("BKS"); 
InputStream truststore = mainActivity.getResources().openRawResource(R.raw.trust); 
store.load(truststore, "PASSWORD".toCharArray()); 
TrustManagerFactory tmf = TrustManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); 
tmf.init(store); 
SSLContext context = SSLContext.getInstance("TLS"); 
context.init(null, tmf.getTrustManagers(), new SecureRandom()); 
Socket socket = context.getSocketFactory().createSocket(ip, port); 
7

आपके आवेदन में प्रमाणपत्र जोड़ना अनुशंसित नहीं है। आपको प्रमाण पत्र अपडेट करने में समस्या होगी।

Self-signed SSL acceptance on Android

HTTPS GET (SSL) with Android and self-signed server certificate
:

आप को देखा है?

+0

मुझे लगता है कि एक आवेदन में एक फिंगरप्रिंट हार्डकोडिंग एक अच्छा विचार है। एक नया फिंगरप्रिंट का उपयोग करने के लिए एक आवेदन को अद्यतन करना मुश्किल नहीं है, और यह सभी सीए संबंधित बकवास में कटौती करता है। – CodesInChaos

+0

क्षमा करें, मैं हाल ही में बहुत व्यस्त रहा हूँ। बाउंटी की समयसीमा समाप्त होने से पहले मैं इस रात को देखूंगा :) –

+0

मैंने आपको लिंक के लिए +1 दिया था। बेशक, उन लिंक में विधियां ऐप को हर किसी पर भरोसा करती हैं, जो निश्चित रूप से वह नहीं है जिसे मैं ढूंढ रहा था। फिर भी, परीक्षण वातावरण में लोगों के लिए दिलचस्प हो सकता है। :) –

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