मैं https://someUrl.com/somePath से कनेक्ट करने के लिए एंड्रॉइड पर एचटीपी क्लाइंट का उपयोग कर रहा हूं। समस्या यह है कि साइट का प्रमाणपत्र * .someUrl.com के लिए है, someUrl.com नहीं, इसलिए मुझे एक एसएसएलएक्सप्शन मिलता है। साइट के हिस्से पर लंगड़ा, हाँ, लेकिन जब तक कि मैं इसे ठीक नहीं कर पाता, मैं अटक गया हूं। क्या कोई तरीका है कि मैं HttpClient को प्रमाणित करने और प्रमाण पत्र स्वीकार करने के लिए प्राप्त कर सकता हूं?एंड्रॉइड एचटीपी क्लाइंट - सर्टिफिकेट में होस्टनाम <example.com> से मेल नहीं खाता! = <*। Example.com>
एंड्रॉइड एचटीपी क्लाइंट - सर्टिफिकेट में होस्टनाम <example.com> से मेल नहीं खाता! = <*। Example.com>
उत्तर
यह मेरा (संपादित) समाधान:
class MyVerifier extends AbstractVerifier {
private final X509HostnameVerifier delegate;
public MyVerifier(final X509HostnameVerifier delegate) {
this.delegate = delegate;
}
@Override
public void verify(String host, String[] cns, String[] subjectAlts)
throws SSLException {
boolean ok = false;
try {
delegate.verify(host, cns, subjectAlts);
} catch (SSLException e) {
for (String cn : cns) {
if (cn.startsWith("*.")) {
try {
delegate.verify(host, new String[] {
cn.substring(2) }, subjectAlts);
ok = true;
} catch (Exception e1) { }
}
}
if(!ok) throw e;
}
}
}
public DefaultHttpClient getTolerantClient() {
DefaultHttpClient client = new DefaultHttpClient();
SSLSocketFactory sslSocketFactory = (SSLSocketFactory) client
.getConnectionManager().getSchemeRegistry().getScheme("https")
.getSocketFactory();
final X509HostnameVerifier delegate = sslSocketFactory.getHostnameVerifier();
if(!(delegate instanceof MyVerifier)) {
sslSocketFactory.setHostnameVerifier(new MyVerifier(delegate));
}
return client;
}
यह डिफ़ॉल्ट व्यवहार में बदलाव नहीं जब तक वहाँ एक वाइल्डकार्ड डोमेन है का लाभ दिया है, और कहा कि मामले में यह पुन: वैधताएं जैसे कि 2 भाग डोमेन (उदाहरण के लिए, someUrl.com) प्रमाण पत्र का हिस्सा थे, अन्यथा मूल अपवाद को पुनर्स्थापित किया जाता है। इसका मतलब है कि वास्तव में अमान्य कर्ट अभी भी असफल हो जाएंगे।
यदि यह *.someUrl.com
चाहता है, तो ऐसा लगता है कि आप इसे के बजाय www.someUrl.com/somePath
दे सकते हैं।
नहीं की अनदेखी करने के कहते हैं। www.someUrl.com कुछ यूआरएल.एम. – noah
पर रीडायरेक्ट करता है मुझे लगता है कि यह बेकार है, फिर। क्या आपको वास्तव में https की आवश्यकता है? मुझे ऐसा लगता है, लेकिन इससे जीवन बहुत आसान हो जाएगा। –
यह साइट एक महान अस्थायी समाधान है जब साइट रीडायरेक्ट नहीं करती है! –
एंड्रॉइड पर बाउंसीकास्टल बहुत पुराना है और यह वाइल्डकार्ड प्रमाण पत्र को मान्यता नहीं देता है।
वाइल्डकार्ड की जांच के लिए आप अपना खुद का X509TrustManager लिख सकते हैं।
या यदि आप जोखिम स्वीकार कर सकते हैं तो आप सर्टिफिकेट चेक को पूरी तरह अक्षम कर सकते हैं। , इस सवाल देखें
असल में जेडजेड, यदि ओपी साइट के नाम और प्रमाण पत्र की संरचना के बारे में सही है, तो त्रुटि संदेश सही है: **। SomeUrl.com * www.someUrl.com और something.someUrl से मेल खाना चाहिए। कॉम, लेकिन * नहीं * someUrl.com या this.that.someUrl.com। –
यदि आप एक WebView का उपयोग सिर्फ
webview.clearSslPreferences();
SSL त्रुटियाँ
- 1. प्रमाणपत्र में होस्टनाम मेल नहीं खाता?
- 2. होस्टनाम सर्वर प्रमाणपत्र से मेल नहीं खाता है - ईमेल
- 3. एंड्रॉइड एचटीपी क्लाइंट प्रदर्शन
- 4. एंड्रॉइड एचटीपी क्लाइंट
- 5. जावा एपीआई का उपयोग कर एस 3/एडब्ल्यूएस के साथ एसएसएल समस्याएं: "सर्टिफिकेट में होस्टनाम मेल नहीं खाता"
- 6. एंड्रॉइड एचटीपी क्लाइंट कुकी
- 7. रेगेक्स पैटर्न जो कुछ एक्सटेंशन से मेल नहीं खाता है? इस पैटर्न file.name.jpg (2 डॉट्स)</p> <p>से मेल खाता है यह ठीक से काम करता filename.jpg पर (मेल नहीं खाता) -
- 8. एंड्रॉइड एचटीपी क्लाइंट और एचटीटीपीएस
- 9. एंड्रॉइड: एचटीपी क्लाइंट प्रति एप्लिकेशन
- 10. एचटीपी क्लाइंट
- 11. एचटीपी क्लाइंट
- 12. Node.js होस्टनाम/IP प्रमाण पत्र के altnames से मेल नहीं खाता
- 13. प्रोफ़ाइल एप्लिकेशन पहचानकर्ता से मेल नहीं खाता
- 14. पीडीबी छवि से मेल नहीं खाता त्रुटि
- 15. XSLT कुछ विशेषताओं से मेल नहीं खाता
- 16. एंड्रॉइड पर एचटीपी क्लाइंट: यूएमटीएस/3 जी
- 17. एंड्रॉइड एचटीपी क्लाइंट सिस्टम प्रॉक्सी सेटिंग्स का उपयोग नहीं करता
- 18. एंड्रॉइड पर डिफ़ॉल्ट एचटीपी क्लाइंट या HttpURLConnection
- 19. एंड्रॉइड जावा यूटीएफ -8 एचटीपी क्लाइंट समस्या
- 20. एचटीपी क्लाइंट को रीसेट क्लाइंट
- 21. एंड्रॉइड पर अपाचे एचटीपी क्लाइंट 4.1
- 22. क्लाइंट सर्टिफिकेट सेटिंग्स को web.config
- 23. एचटीपी क्लाइंट वेब एपीआई
- 24. सूचक प्रकार मेल नहीं खाता चेतावनी
- 25. एचटीपी क्लाइंट और .net4
- 26. अजीब प्रकार मेल नहीं खाता जब निकालने
- 27. जावा एचटीपी क्लाइंट
- 28. एचटीपी क्लाइंट 4.0.1
- 29. कर्नेल अनुभाग मेल नहीं खाता क्या है?
- 30. मेल खाता बनाना php
मैंने उपर्युक्त का उपयोग करने की कोशिश की, लेकिन कभी-कभी स्टैक ओवरफ़्लो अपवाद प्राप्त होते हैं - सत्यापित() विधि कभी भी रिकर्सिंग को रोक नहीं देती है। कुछ सौ हजार इंस्टॉलों में से, यह सप्ताह में लगभग 80 बार होता है। क्या आपने इसके साथ कोई समस्या देखी है? – user291701
@ user291701 मैंने आपकी समस्या के चारों ओर प्रयास करने और काम करने के लिए कोड संपादित किया है। मुझे लगता है कि समस्या यह है कि आप एक ही कारखाने पर फिर से सत्यापनकर्ता को सेट अप करते हैं, इसलिए यह किसी भी तरह से खुद को प्रस्तुत करने के लिए समाप्त होता है ... यदि आपको बेहतर तरीका मिल जाता है तो मेरे उत्तर को संपादित करने के लिए स्वतंत्र महसूस करें। – noah
किसी भी मामले में, मुझे सामना करना पड़ रहा है 'सर्वर अनुरोध की सेवा नहीं कर सकता क्योंकि मीडिया प्रकार असमर्थित है' त्रुटि। इसके कारण के बारे में कोई सुराग नहीं है। –