Невозможно запустить Https (запуск Tomcat 8.5 в SSLv3) - PullRequest
0 голосов
/ 10 января 2019

Я устанавливаю SSLv3 в файле tomcat v8.5 server.xml, используя протокол Nio и Java 1.8. Когда я нажимаю на запрос от IE, я получаю ответ, но через код Java я получаю исключение, как показано ниже.

javax.net.ssl.SSLHandshakeException: получено фатальное предупреждение: handshake_failure

Я обновил файл development.properties, который находится в папке users / db8 / Appdata / LocalLow / sun / java / deploy / deploy.properties (deploy.security.SSLv3 = true), и удалил SSLv3 из файла java.security. Я включил sslv3 в Internet Explorer.

    server.xml 
    <Connector protocol="org.apache.coyote.http11.Http11NioProtocol" 
    port="8443" maxThreads="200" scheme="https" secure="true" 
    SSLEnabled="true" keystoreFile="keystore.jks" keystorePass="changeit" 
    clientAuth="false" sslProtocol="SSLv3" />

java code

import java.net.URL;
import java.io.*;
import javax.net.ssl.HttpsURLConnection;
import java.net.HttpURLConnection;

public class JavaHttpsExample
{
public static void main(String[] args) throws Exception {
    String certificatesTrustStorePath = "keystore.jks";
    System.setProperty("javax.net.ssl.trustStore",
    certificatesTrustStorePath);
    System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
    System.setProperty("https.protocols", "SSLv3");
    System.setProperty("jdk.tls.client.protocols", "SSLv3");
    String httpsURL = "https://ip:8443/test/getData";
    URL myUrl = new URL(httpsURL);
    HttpsURLConnection conn = (HttpsURLConnection)myUrl.openConnection();
    try{       
    InputStream is = conn.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);
    String inputLine;
    while ((inputLine = br.readLine()) != null) {
    System.out.println(inputLine);
    }
    br.close();
    } catch(Exception e){
    System.out.println("exxception"+e);
    }    
    }
    } 

Я добавляю результат после обновления debug = all

Разрешить небезопасные пересмотры: false Разрешить устаревшие приветственные сообщения: правда Это начальное рукопожатие: правда Безопасное пересмотр: ложь main, setSoTimeout (0) вызывается %% Нет кэшированного сеанса клиента обновить состояние рукопожатия: client_hello [1] состояние предстоящего рукопожатия: server_hello [2] *** ClientHello, SSLv3 RandomCookie: GMT: 1547297410 байт = {170, 53, 106, 27, 73, 55, 4, 39, 195, 152, 66, 1, 124, 244, 6, 114, 106, 181, 46, 183, 184, 202, 56, 105, 225, 158, 210, 195} Идентификатор сессии: {} Cipher Suites: [TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV] Методы сжатия: {0} Расширение elliptic_curves, имена кривых: {secp256r1, secp384r1, secp521r1, sect283k1, sect283r1, sect409k1, sect409r1, sect571k1, sect571r1, secp256k1} Расширение ec_point_formats, форматы: [несжатый]


main, WRITE: SSLv3 Handshake, длина = 107 основной, ЧИТАЙТЕ: оповещение SSLv3, длина = 2 основной, RECV TLSv1.2 ALERT: смертельно, handshake_failure main, называется closeSocket () main, исключение обработки: javax.net.ssl.SSLHandshakeException: получено фатальное предупреждение: handshake_failure exxceptionjavax.net.ssl.SSLHandshakeException: получено фатальное предупреждение: handshake_failure

1 Ответ

0 голосов
/ 21 января 2019

Кажется, что ваш сервер поддерживает TLS Cipher Suites, но вы пытаетесь с SSLv3. Можете ли вы запустить свою программу с -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2, как это предлагается по ссылке https://dzone.com/articles/troubleshooting-javaxnetsslsslhandshakeexception-r, которая объясняет, как устранять неполадки с ошибками SSL Handshake.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...