- - PR -
自己署名証明書によるサーバー認証について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-06-02 21:36
いつもお世話になっております。
標題の件についてご相談させて下さい。 Javaクライアント(JDK1.4.2.07)からWebサービスを実行しようとしているのですが、 SSLHandshakeExceptionが発生します。 調べた所、クライアントとサーバーの間にあるSSLアクセラレータの認証に失敗している事が 分かりました。 SSLアクセラレータの証明書はhttps通信による暗号化を目的としているので、第三者機関の 署名は受けず、自己署名の証明書を作成しています。 ここで、質問なのですが、ブラウザ(IE)ですと期限が切れていたり公開キーがない証明書は セキュリティ警告のワーニングが表示され、先に進む事ができますが、Javaのコーディングで 同じような処理はできるでしょうか?(サーバー認証を無視する) 対応策としては、 1.https通信を行うが、サーバー認証は行わない(できるかどうか調査中) 2.クライアントのコーディングでサーバー認証を無視して進む 3.クライアントにサーバーの証明書をインポートして信頼するコーディングを入れる(調査済み) 等、考えられると思いますが、1は可能性が薄そうなので今後の展開を考えると2が 実現できれば良いと考えています。 そのような処理は可能でしょうか? 宜しくお願い致します。 | ||||
|
投稿日時: 2006-06-02 23:44
1.は確かに無理があるかもしれません(出来たら、まんまセキュリティホールだし) 2に関しては、 http://takagi-hiromitsu.jp/diary/20050216.html なぜかこれを張ってみよう(苦笑) TrustManagerの自作というやつです。 | ||||
|
投稿日時: 2006-06-04 15:54
加納正和さん、レスありがとうございます。
明日、社でTrustManagerの自作を試してみます。 | ||||
|
投稿日時: 2006-06-06 15:00
結果報告致します。
加納正和さんに教えて頂いた方法で試したところ、上手く行きました。 ありがとうございました。 ただ気になる点が一点。 接続後にHttpsURLConnection#getHeaderField(0)を確認したところ、 "HTTP/1.1 200 OK" と表示されました。 https接続でも上記表示で合っているのでしょうか? 宜しくお願い致します。 | ||||
|
投稿日時: 2006-06-06 20:21
合ってると思いますよ。 httpとhttpsで異なってたら、逆に怖いと思いますが、、 せっかく暗号化出来てるのに(苦笑) | ||||
|
投稿日時: 2006-06-07 09:51
素人な質問をしてしまいました。
加納正和さん、ありがとうございました。 |
1