【Android】オレオレ証明書を無視する

 

 


サーバ側からJSONファイルを受け取って、
解析するってアプリはよくあると思います。

 

 

 

 

そこで、サーバ側が自己証明書を使用している場合
アプリ側も対応が必要になります。


オレオレ証明書

 

 

 

 

 


記載方法は以下になります。

# 今回の条件として、TLS通信であること。
# HttpsURLConnectionを使用して通信を行っていること。


--------------------------------

try {

// オレオレ証明書を使う.
final TrustManager trustAllCerts = new TrustManager{
new X509TrustManager() {
@Override
public void checkClientTrusted(
java.security.cert.X509Certificate
chain, String authType)
throws CertificateException {
}

@Override
public void checkServerTrusted(
java.security.cert.X509Certificate
chain, String authType)
throws CertificateException {
}

@Override
public java.security.cert.X509Certificate[]
getAcceptedIssuers() {
return null;
}
}
};

SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, trustAllCerts,
new java.security.SecureRandom());
SSLSocketFactory sslSocketFactory =
sslContext.getSocketFactory();

connection.setSSLSocketFactory(sslSocketFactory);
connection.setHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String hostname,
SSLSession session) {
return true;
}
});

} catch (Exception e) {
e.printStackTrace();
}

--------------------------------

 


connect呼ぶ前に対応してあげるといいと思います。

 

 

 

 

 


ちなみに上記記載順番とか入れ替わるだけで
通らなくなるので気を付けてください。


多分、必要な情報が無いとか言って怒られるんだろうな。。