JAVAでHTTPS通信をする方法
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLContext;
SSLContext sc = null; // SSLContext
HostnameVerifier hv = null; // HostnameVerifier
// SSLContext 作成
try {
//System.out.println("DEBUG:SSLContext 作成");
sc = SSLContext.getInstance("SSL");
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("SSLContext#getInstance: NoSuchAlgorithmException", e);
}
// SSLContext 初期化
try {
//System.out.println("DEBUG:SSLContext 初期化");
sc.init(null, getTrustManagerAllowAllCerts(), null);
} catch (KeyManagementException e) {
throw new RuntimeException("SSLContext#init: KeyManagementException", e);
}
// HTTPSで使用する SSLソケットの作成(SSLSocketFactory) をセット
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
// HostnameVerifier を作成
hv = getHostnameVerifierAllowAllHosts();
// HTTPSで使用する ホスト名の検証(HostnameVerifier) をセット
// デフォルトの検証が失敗した場合(証明書の氏名[CN]が異なる場合など)に呼び出される
HttpsURLConnection.setDefaultHostnameVerifier(hv);
ソース元
0 件のコメント:
コメントを投稿