Apache の HttpClient (v4) を使用して Web サイトの証明書の詳細を取得する方法はありますか? を使用して Web サイトの証明書を取得できますが、接続にjavax.net.ssl.HttpsURLConnection.getServerCertificates()
Apache のHttpClientを使用しており、同じライブラリを使用したいと考えています。
証明書の発行者、有効期限、アルゴリズムなどの情報が必要です。
Apache の HttpClient (v4) を使用して Web サイトの証明書の詳細を取得する方法はありますか? を使用して Web サイトの証明書を取得できますが、接続にjavax.net.ssl.HttpsURLConnection.getServerCertificates()
Apache のHttpClientを使用しており、同じライブラリを使用したいと考えています。
証明書の発行者、有効期限、アルゴリズムなどの情報が必要です。
DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.addRequestInterceptor(new HttpRequestInterceptor() {
public void process(
HttpRequest request, HttpContext context) throws HttpException, IOException {
HttpRoutedConnection conn = (HttpRoutedConnection) context.getAttribute(
ExecutionContext.HTTP_CONNECTION);
SSLSession sslsession = conn.getSSLSession();
if (sslsession != null) {
// Do something useful with the SSL session details
// and if necessary stick the result to the execution context
// for further processing
X509Certificate[] certs = sslsession.getPeerCertificateChain();
for (X509Certificate cert: certs) {
System.out.println(cert);
}
}
}
});
HttpResponse response = httpclient.execute(new HttpGet("https://verisign.com/"));
EntityUtils.consume(response.getEntity());
お役に立てれば。