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) {
何をしているのですか?その事例が書かれて以来変わったことはありますか?
は再びを通じて何かをすることができますのTrustManagerの使用を促進します。アクティブなMITMがあなたを騙して代わりに任意の証明書を使用する可能性があるため、SSL/TLSを使用することはできません。また、任意のホスト名を使用できます。それだけで不安です。 – Bruno
それはまさにその記事が言っていることです、それは安全ではありません。しかし、自己署名証明書は自分の本質によって安全であるため、「自己署名証明書を使用している」場合にのみリンクを確認するように言います。とにかくそれはあなたがそれを発言する良い。 –
自己署名証明書は、証明書を手動で検証できる場合(個人的に証明書を発行した場合や、自分のサーバーにインストールした場合など)、証明書を明示的にインポートする必要がある場合は安全です。デベロッパーのこのようなコードの危険性。プロジェクトマネジメントが懸念され、決して削除されない限り、「SSLを使用する」ボックスにチェックを入れることができるということです。いくつかのアプリケーションがあり、そこにはこの種の素材が残っています。自己署名入りの証明書をインポートしたり、小規模なテストCAを持つことは、それ以上の作業を必要としません。 – Bruno