Showing posts with label ssl. Show all posts
Showing posts with label ssl. Show all posts

Monday, 24 May 2021

disable ssl certificate validation on HttpsURLConnection

 Below snippet disables the SSL certificate validation on HttpsURLConnection.

import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;

public class SSLIgnoreCheck {

	static void disableCertValidation() throws NoSuchAlgorithmException, KeyManagementException {

		class HttpsTrustManager implements X509TrustManager {

			@Override
			public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {

			}

			@Override
			public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {

			}

			@Override
			public X509Certificate[] getAcceptedIssuers() {
				return new X509Certificate[0];
			}
		}
		
		TrustManager[] trustAllCerts = new TrustManager[] { new HttpsTrustManager() };

		SSLContext sslContext = SSLContext.getInstance("SSL");
		sslContext.init(null, trustAllCerts, new java.security.SecureRandom());

		HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());

		// Create all-trusting host name verifier
		HostnameVerifier validHosts = new HostnameVerifier() {
			@Override
			public boolean verify(String arg0, SSLSession arg1) {
				return true;
			}
		};

		// All hosts will be valid
		HttpsURLConnection.setDefaultHostnameVerifier(validHosts);
	}
}




Previous                                                    Next                                                    Home