- PR -

自己署名証明書によるサーバー認証について

1
投稿者投稿内容
OZ
常連さん
会議室デビュー日: 2006/02/27
投稿数: 45
投稿日時: 2006-06-02 21:36
いつもお世話になっております。

標題の件についてご相談させて下さい。

Javaクライアント(JDK1.4.2.07)からWebサービスを実行しようとしているのですが、
SSLHandshakeExceptionが発生します。

調べた所、クライアントとサーバーの間にあるSSLアクセラレータの認証に失敗している事が
分かりました。
SSLアクセラレータの証明書はhttps通信による暗号化を目的としているので、第三者機関の
署名は受けず、自己署名の証明書を作成しています。

ここで、質問なのですが、ブラウザ(IE)ですと期限が切れていたり公開キーがない証明書は
セキュリティ警告のワーニングが表示され、先に進む事ができますが、Javaのコーディングで
同じような処理はできるでしょうか?(サーバー認証を無視する)

対応策としては、
1.https通信を行うが、サーバー認証は行わない(できるかどうか調査中)
2.クライアントのコーディングでサーバー認証を無視して進む
3.クライアントにサーバーの証明書をインポートして信頼するコーディングを入れる(調査済み)
等、考えられると思いますが、1は可能性が薄そうなので今後の展開を考えると2が
実現できれば良いと考えています。

そのような処理は可能でしょうか?

宜しくお願い致します。
加納正和
ぬし
会議室デビュー日: 2004/01/28
投稿数: 332
お住まい・勤務地: 首都圏
投稿日時: 2006-06-02 23:44
引用:

OZさんの書き込み (2006-06-02 21:36) より:
いつもお世話になっております。

対応策としては、
1.https通信を行うが、サーバー認証は行わない(できるかどうか調査中)
2.クライアントのコーディングでサーバー認証を無視して進む
3.クライアントにサーバーの証明書をインポートして信頼するコーディングを入れる(調査済み)




1.は確かに無理があるかもしれません(出来たら、まんまセキュリティホールだし)

2に関しては、

http://takagi-hiromitsu.jp/diary/20050216.html

なぜかこれを張ってみよう(苦笑)

TrustManagerの自作というやつです。
OZ
常連さん
会議室デビュー日: 2006/02/27
投稿数: 45
投稿日時: 2006-06-04 15:54
加納正和さん、レスありがとうございます。

明日、社でTrustManagerの自作を試してみます。
OZ
常連さん
会議室デビュー日: 2006/02/27
投稿数: 45
投稿日時: 2006-06-06 15:00
結果報告致します。

加納正和さんに教えて頂いた方法で試したところ、上手く行きました。
ありがとうございました。

ただ気になる点が一点。
接続後にHttpsURLConnection#getHeaderField(0)を確認したところ、
"HTTP/1.1 200 OK"
と表示されました。
https接続でも上記表示で合っているのでしょうか?

宜しくお願い致します。
加納正和
ぬし
会議室デビュー日: 2004/01/28
投稿数: 332
お住まい・勤務地: 首都圏
投稿日時: 2006-06-06 20:21
引用:

OZさんの書き込み (2006-06-06 15:00) より:
"HTTP/1.1 200 OK"
https接続でも上記表示で合っているのでしょうか?



合ってると思いますよ。
httpとhttpsで異なってたら、逆に怖いと思いますが、、
せっかく暗号化出来てるのに(苦笑)
OZ
常連さん
会議室デビュー日: 2006/02/27
投稿数: 45
投稿日時: 2006-06-07 09:51
素人な質問をしてしまいました。

加納正和さん、ありがとうございました。
1

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