- PR -

httpclientでサーバ証明書の表示

1
投稿者投稿内容
wkcat
会議室デビュー日: 2003/11/12
投稿数: 4
投稿日時: 2007-02-20 01:51
現在httpclientを使い、サーバ証明書を表示させるプログラムを作ろうとしているのですが、どのクラスを呼びだせばサーバの証明書を表示できるのか分からない状態です。

Eclipse上のデバッガでSSL通信後のhttpclientクラスのインスタンスを掘って見ると、「httpClient.httpConnectionManager.httpConnection.outputStream」の中に文字列でサーバ証明書を取得しているところまで確認できています。

ただ、取得できたものを取り出す方法をいろいろ試しても上手くいきません。

もし、良いやり方や、情報源をご存知の方いらっしゃいましたら、ご教授ください。

よろしくお願いいたします。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2007-02-20 12:17
引用:

wkcatさんの書き込み (2007-02-20 01:51) より:
Eclipse上のデバッガでSSL通信後のhttpclientクラスのインスタンスを掘って見ると、「httpClient.httpConnectionManager.httpConnection.outputStream」の中に文字列でサーバ証明書を取得しているところまで確認できています。



自分で追っていないので未確認ですが、
HttpClientはjavax.net.ssl.SSLSocketFactoryを使っており
SSL通信の詳細はjavax.net.ssl.SSLSocketに隠蔽されるため、
outputStream中に証明書が現れるのはおかしい気がします。

というわけで、HttpConnectionの内部のsocketは、
javax.net.ssl.SSLSocketとなるはずですので、
javax.net.ssl.SSLSocket#getSession()を経由して
SSLセッションが使用している証明書を取得できると思います。
wkcat
会議室デビュー日: 2003/11/12
投稿数: 4
投稿日時: 2007-02-20 23:50
ありがとうございます。

今日は時間的に試すことができないのですが、あしゅさんのおっしゃるやり方でトライしてみたいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)