- - PR -
SSL Exception
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-10-25 17:08
初めての投稿です。宜しくお願いいたします。
下記のエラーが発生していて、どのように対応したらいいのかわからず困っています。 アドバイスください。宜しくお願いいたします。 環境は Java→ java version "1.4.2_03" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02) Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode) で行っています。 記載しているソース → System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol"); strurl = "https://www--------------"; URL url = new URL(strurl); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setDoOutput(true); conn.setRequestMethod("POST"); conn.setRequestProperty("User-Agent", "@IT java-tips URLConnection"); conn.setRequestProperty("Accept-Language", "ja"); BufferedReader in = new BufferedReader( new InputStreamReader( conn.getInputStream())); ここでエラーが発生します。 javax.net.ssl.SSLException: untrusted server cert chain [ メッセージ編集済み 編集者: さち 編集日時 2004-10-25 17:14 ] | ||||||||
|
投稿日時: 2004-10-25 19:43
「untrusted server cert chain」
上記の英文を意訳すると、信頼できないサーバーのCERT鍵です。となります。 http://jp.sun.com/supportraining/letter122503.html ←は大丈夫でしょうか? 独自鍵の場合、有効期間の設定は大丈夫(期限内)でしょうか? 確認をしてみて下さい。 詳しいことは、google検索でお願いします。 以上 | ||||||||
|
投稿日時: 2004-10-26 10:56
HTTPSへの接続の場合、
javax.net.ssl.HttpsURLConnection を使うとよいのでは。 他のスレッドにもありました。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?forum=12&topic=7497 | ||||||||
|
投稿日時: 2004-10-27 12:38
>ponkotuさん
有効期限は大丈夫でした。 Valid from: Mon Jan 29 09:00:00 JST 1996 until: Wed Aug 02 08:59:59 JST 2028 | ||||||||
|
投稿日時: 2004-10-27 14:12
これから察すると、独自認証局を立てて、そこで発行した証明書をWebサーバはつかってますね。 ということは、クライアントは発行した認証局を信頼していないことが原因かもしれません。 クライアントは通常信頼できないところから発行された証明書を使った処理を行う場合、通信できなくなったり、警告をだしたり(IEなど)します。 そこで少し考えると、Verisignなど認証機関が発行した証明書では、 なぜ無条件に通信できるのかということにぶち当たるかと思いますが、 これは、IEやJDKでは、Verisignのルート証明書を信頼しているからです。 (おおざっぱですが・・・) では、どうすればよいのかというと、問題となっている証明書だけを信頼させればよいので、下記のスレッドを参考にしてみてください。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15914&forum=12&4 | ||||||||
|
投稿日時: 2004-10-27 15:08
| ||||||||
|
投稿日時: 2004-10-28 10:24
例外の内容から推測すると、プロバイダーがMD5に対応していないのではないでしょうか。 ソースコードに以下のコードが存在しなければ追加してみてください。 Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); 以上 | ||||||||
|
投稿日時: 2004-10-28 12:05
ありがとうございます。 上記ソースを記載し、実行させましたが、 javax.net.ssl.SSLException: untrusted server cert chain at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275) at com.sun.net.ssl.internal.ssl.ClientHandshaker.a(DashoA6275) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(DashoA6275) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(DashoA6275) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275) at com.sun.net.ssl.internal.ssl.AppOutputStream.write(DashoA6275) at java.io.OutputStream.write(OutputStream.java:58) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(DashoA6275) このようにエラーが発生しました。 | ||||||||
