2012-04-24 20 views
0

私はこれを実行していますが、Java + SSL Tutorialですが、次のエラーが発生しています。SSLHandshakeException(簡易SSL実行時)Javaの例

main, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown 
javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown 
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source) 
    at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(Unknown Source) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(Unknown Source) 
    at com.sun.net.ssl.internal.ssl.AppInputStream.read(Unknown Source) 
    at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) 
    at sun.nio.cs.StreamDecoder.implRead(Unknown Source) 
    at sun.nio.cs.StreamDecoder.read(Unknown Source) 
    at java.io.InputStreamReader.read(Unknown Source) 
    at java.io.BufferedReader.fill(Unknown Source) 
    at java.io.BufferedReader.readLine(Unknown Source) 
    at java.io.BufferedReader.readLine(Unknown Source) 
    at EchoServer.main(EchoServer.java:24) 

例外が発生したコードの行はここにある:私はここで間違って

 while ((string = bufferedreader.readLine()) != null) { 

何をしているのですか?その事例が書かれて以来変わったことはありますか?

答えて

-2

おそらく証明書が何らかの理由で有効ではない(または読み込まれていない)可能性があります。デバッグモードを有効にすると、さらに問題を見つけるのに役立ちます。

System.setProperty( "javax.net.debug"、 "all");また

あなたは、自己署名証明書を使用している場合、に見て取る:あなたが使用しているリンクhttp://ctasada.blogspot.com.es/2010/11/httpclient-use-self-signed-certificates.html

+1

は再びを通じて何かをすることができますのTrustManagerの使用を促進します。アクティブなMITMがあなたを騙して代わりに任意の証明書を使用する可能性があるため、SSL/TLSを使用することはできません。また、任意のホスト名を使用できます。それだけで不安です。 – Bruno

+0

それはまさにその記事が言っていることです、それは安全ではありません。しかし、自己署名証明書は自分の本質によって安全であるため、「自己署名証明書を使用している」場合にのみリンクを確認するように言います。とにかくそれはあなたがそれを発言する良い。 –

+1

自己署名証明書は、証明書を手動で検証できる場合(個人的に証明書を発行した場合や、自分のサーバーにインストールした場合など)、証明書を明示的にインポートする必要がある場合は安全です。デベロッパーのこのようなコードの危険性。プロジェクトマネジメントが懸念され、決して削除されない限り、「SSLを使用する」ボックスにチェックを入れることができるということです。いくつかのアプリケーションがあり、そこにはこの種の素材が残っています。自己署名入りの証明書をインポートしたり、小規模なテストCAを持つことは、それ以上の作業を必要としません。 – Bruno