Я запускаю этот 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, что позволяет что-либо до конца. Выполнение разыгрывает точку использования SSL/TLS, поскольку активный MITM может обмануть вас и использовать любой сертификат, которому вы бы доверяли. Он также пропускает любое имя хоста. Это просто небезопасно. – Bruno
Ну, это именно то, что говорится в статье, это небезопасно. Но сертификаты самооценки охраняются по своему характеру, поэтому я говорю, чтобы проверить ссылку, только если «она использует сертификаты самоподписывания». В любом случае, хорошо, что вы это замечаете. –
Самозаверяющие сертификаты не являются безопасными, если вы хотите явно их импортировать, когда вы можете их проверить вручную (например, кто-то дает его вам лично или вы сами устанавливаете его на свой собственный сервер). Опасность такого рода кода в dev. что он может указывать флажок «Использовать SSL» в отношении управления проектами и никогда не удаляется. Есть некоторые приложения с такими вещами, которые остались в производстве. Для импорта самозаверяющего сертификата не требуется гораздо больше работы или, лучше, иметь небольшой тестовый центр сертификации. – Bruno