यदि आप Google Play Store के बाहर एपीके का उपयोग करना चाहते हैं, उदाहरण के लिए, निजी निम्नलिखित की तरह एक समाधान शायद काम करेगा:
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
यदि आप सुरक्षा की एक अतिरिक्त वैकल्पिक परत जोड़ना चाहते हैं, तो आप सर्टिफिकेट पिनिंग का उपयोग करने का प्रयास कर सकते हैं । IMHO यह निजी या आंतरिक उपयोग के लिए कठिन नहीं है।
यदि आप Google Play Store पर ऐप प्रकाशित करने की योजना बनाते हैं, तो आपको @Override onReceivedSslError (...) {...} से बचना चाहिए । विशेष रूप से हैंडलर का उपयोग करना। Google को यह कोड स्निपेट मिलेगा और हैंडलर के साथ समाधान के बाद से यह सुनिश्चित करने के लिए आपके ऐप को अस्वीकार कर देगा। सुरक्षित () सभी प्रकार के अंतर्निहित सुरक्षा तंत्रों को दबा देगा ।
और सिर्फ इस तथ्य के कारण कि ब्राउज़र आपके https कनेक्शन के बारे में शिकायत नहीं करते हैं, इसका मतलब यह नहीं है कि एसएसएल प्रमाण पत्र पर ही भरोसा किया जाता है!
मेरे मामले में, एसएसएल प्रमाणपत्र श्रृंखला टूट गई थी। आप एसएसएल चेकर के साथ ऐसे मुद्दों को जल्दी से परख सकते हैं या SSLLabs के साथ अधिक मध्यवर्ती कर सकते हैं । लेकिन कृपया मुझसे यह न पूछें कि यह कैसे हो सकता है। मेरे पास कोई सुराग नहीं है।
वैसे भी एसएसएल सर्टिफिकेट को रीइंस्टॉल करने के बाद, " वेबव्यू में अविश्वसनीय एसएसएल सर्टिफिकेट जो भी हो " के बारे में सभी त्रुटियां आखिरकार गायब हो गईं। मैंने onReceivedSslError (...) के लिए @Override को भी हटा दिया और हैंडलर.प्रोसेसर () से छुटकारा पा लिया , और मेरे ऐप को Google Play Store (फिर से) द्वारा अस्वीकार नहीं किया गया।