単純に証明書のチェックを無効化させる
DefaultHttpClient
/*
* 証明書のチェック処理を無効化する
*/
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, new TrustManager[]{new X509TrustManager() {
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkClientTrusted(X509Certificate[] certs, String authType) {
// 何もしない
}
@Override
public void checkServerTrusted(X509Certificate[] certs, String authType) {
// 何もしない
}
}}, new SecureRandom());
Scheme sch = new Scheme("https", new SSLSocketFactory(sslContext), 443);
DefaultHttpClient httpClient = new DefaultHttpClient();
httpClient.getConnectionManager().getSchemeRegistry().register(sch);
HttpsURLConnection
SSLContext sslContext = SSLContext.getInstance("SSL");
TrustManager tm = new X509TrustManager() {
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
}
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
}
};
sslContext.init(null, new TrustManager[]{tm}, null);
SSLSocketFactory socketFactory = sslContext.getSocketFactory();
HttpsURLConnection.setDefaultSSLSocketFactory(socketFactory);
Client client = Client.create();