How to make Java ignore the certificate errors
SSLUtil.java
package dms.os;
import java.io.ByteArrayInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.HashSet;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
public final class SSLUtil {
private static HashSet<KeyManager> keyManagers = new HashSet<KeyManager>();
static {
trustAllHosts();
}
public static TrustManager[] _trustManagers = new TrustManager[] { new X509TrustManager() {
private final X509Certificate[] _AcceptedIssuers = new X509Certificate[] {};
public void checkClientTrusted(X509Certificate[] chain, String authType) {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) {
}
public X509Certificate[] getAcceptedIssuers() {
return (_AcceptedIssuers);
}
} };
public static void addClientCertificate(byte[] data, String password)
throws KeyManagementException, NoSuchAlgorithmException,
UnrecoverableKeyException, KeyStoreException, CertificateException,
FileNotFoundException, IOException {
SSLContext context = SSLContext.getInstance("TLS");
for (KeyManager km : getKeyManagers(data, password))
keyManagers.add(km);
context.init(keyManagers.toArray(new KeyManager[keyManagers.size()]),
_trustManagers, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(context
.getSocketFactory());
}
private static KeyManager[] getKeyManagers(byte[] data, String password)
throws UnrecoverableKeyException, KeyStoreException,
NoSuchAlgorithmException, CertificateException,
FileNotFoundException, IOException {
KeyManagerFactory tmf = null;
char[] passwKey = password.toCharArray();
KeyStore ts = KeyStore.getInstance("PKCS12");
ts.load(new ByteArrayInputStream(data), passwKey);
tmf = KeyManagerFactory.getInstance("SunX509");
tmf.init(ts, passwKey);
return tmf.getKeyManagers();
}
public static void trustAllHosts() {
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostname,
javax.net.ssl.SSLSession session) {
return (true);
}
});
}
}