Хак для самоподписных сертификатов.
Код отлично работающий с Http, может совершенно отказываться работать с https,если сертификаты самоподписные.(что чаще всего и есть на тестовых площадках)Для примера, если вы используете в Java класс HttpURLConnection то он выдаст следующее исключение:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
Чтобы его избежать, нам нужно отключить проверку сертификатов в https.
Это исключение нам дает класс URL через который обращается HttpURLConnection.Для тестирования достаточно перегрузить trust manager, чтобы он доверял всем сертификатам)
// Create a trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[]{ new X509TrustManager() { public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } public void checkClientTrusted( java.security.cert.X509Certificate[] certs, String authType) { } public void checkServerTrusted( java.security.cert.X509Certificate[] certs, String authType) { } } }; // Install the all-trusting trust manager try { SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); } catch (Exception e) { } // Now you can access an https URL without having the certificate in the truststore try { URL url = new URL("https://hostname/index.html"); } catch (MalformedURLException e) { }