- ベストアンサー
JSSEを使用したProxy経由のHTTPS通信について
いつもお世話になっております。 タイトルの件で質問させてください。 現在JSSEを使用しProxy経由のHTTPS通信するJavaアプリケーションを作成しています。 具体的な動作としては指定のURLのソースをテキストエリアに表示させるだけ なのですが、手こずっています。 インターネット上においてHTTP通信は成功するのですが、HTTPSの場合エラー が発生します。 →ERROR: The requested URL could not be retrieved (上記はエラーの一部です。これはHTML形式でかえってきます。) 試しにイントラネット上にてHTTPS通信をしてみました。 (もちろんProxyは経由しません。) サーバはWeblogicServer6.1Jを使用し、HTTPS通信を試みたのですが下記の ようなExxeptionが発生します。 ちなみにWeblogicは普通にインストールして起動しただけで、特に何もしていません。 javax.net.ssl.SSLException: untrusted server cert chain at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198]) (以下略) Weblogicに最初からくっついてくる認証ファイル(?)をどこかに置くとかそういう ことで解決できるのでしょうか? 解決方法をご存じの方はご教授下さい。 --開発環境-- OS:Win2k sp2 IDE:JBuilder5 Personal(JDK1.3.0_2) Sun JSSE1.0.2を使用 --WeblogicServer-- OS:Win2k sp2 webserver:WeblogicServer6.1J
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
私もやったことないので、少しでも手助けになればと思い、書かせていただきます^^; まず、「The requested URL could not be retrieved」についてですが、 わかりません。プロキシではじかれてるだけかなと思いつつも、その辺は、 ct27さんの方が詳しそうとみまして。 イントラネットで、まず成功を考え、ちょっと調べてみましたら、少し興味深い 事が載っているサイトを見つけましたので、お知らせしておきます。 http://httpunit.sourceforge.net/doc/sslfaq.html 上記アドレスに 「Weblogicについては、configファイルでweblogic.security.ssl.enable=true をセットして、[https://myhost]のようなURLを使用してください。」 とあります。訳が間違ってたら、すいません^^; あとは、上記サイトの 「How can I import my existing certificate into the "trust file" for a JVM?」 の部分を確認され、手順通りに作業されると、「untrusted」な状態が回避できるかもしれません。 また、このサイトの内容が信用できるものかどうかわかりませんが、 参考になれば幸いです。 まったく、自信ないですので、あくまで参考までにと言う事で。 がんばってください^^
その他の回答 (2)
- yuji
- ベストアンサー率37% (64/169)
すみません。 ANo.#2の回答をした者ですが、 Proxy経由で行っていたのは HTTP でした。 HTTPSの場合は Proxy 経由では試していません。
お礼
SUNのUSを調べたところ、どうやらJSSE1.0.2ではProxy認証+HTTPSはバグがあって 動かないようです。(^^;; J2SEv1.4からJSSEが付属してくるので、試しにJSSEv1.4で動作を確認してみた ところ、なんとProxy認証+HTTPSで通信ができました!! しかしv1.4は出たばかりなので導入するかどうかはわかりませんが、とりあえず わかって良かったです。みなさんありがとうございました。 とりあえずポイントは書き込みをいただいた順番に差し上げたいと思います。
補足
アドバイスありがとうございました。 JavaWorld2000年4月号に記載があるという話は知っていたのですが、残念ながら 手元にありません。(^^; とりあえず現状はProxyを経由しなければHTTPS通信はできますが、プロキシ経由 のHTTPS通信はできません。SUNのUSサイトを探索して似たようなものを探して いるのですが、ソケットを使用したものが大半な上、英語なので非常につらいですね。 ちなみにこんな例外が発生しています。 javax.net.ssl.SSLException: Unrecognized SSL handshake. (以下略)
- yuji
- ベストアンサー率37% (64/169)
私は「Java World 2000/4月号」を見て HTTPSを使った通信のクライアントを作成しました。 Proxyを通すことも可能です。 仕事で作ったので、ソースを公開することはできませんが バックナンバーが手に入るなら、 「Java World 2000/4月号」を入手してみてください。
補足
アドバイスありがとうございます。 URL参照させていただきました。weblogic.security.ssl.enable=trueの部分なの ですが、書き方からしておそらく以前のバージョンの設定ファイルの書き方の ように思います。(weblogicは詳しくないのですが・・・(^^;) mkimさんがポイントとしてあげてくださった部分を参考にいろいろとやってみま したが、まだ試していませんがおそらくイントラネット上ではうまくいきそうに 思います。ただインターネット上でできないと意味がないのでなんとかPorxy経由 のHTTPSを実現させたいです。 とりあえずProxyを通さずにHTTPS通信できるかというのはまだやっていないので ちょっと試していきたいと思います。 なにかお気づきの点がありましたらまたアドバイスをお願いいたします。