Handshake_failure без SSLContext в HTTP-клиенте Java - PullRequest
0 голосов
/ 17 июня 2019

Я почувствовал, что столкнулся со странной проблемой, я написал основной Java-клиент Java без SSLContext и, когда я запускаю программу для вызова службы REST, она начинала давать сбой с приведенным ниже исключением. Однако, когда я добавил SSLContext к клиенту, он прошел, и я вижу ответ.

Initial Code without SSLContext :
String url = "https://URL";
    URL obj = new URL(url);
    HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();     
    con.setRequestMethod("POST");           
    con.setRequestProperty("CONTENT-TYPE", "application/json"); 
    String request = "{ json Request }";    
    con.setDoOutput(true);
    DataOutputStream wr = new DataOutputStream(con.getOutputStream());
    wr.write(request.getBytes());
    wr.flush();
    wr.close();
    int responseCode = con.getResponseCode();
    System.out.println("Response Code : " + responseCode);

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

During SSL debugging it is found that client server sends TSLv1.2 during ClientHello, however i dont see a ServerHello in return.
But when the below SSL code error disappeared

SSLContext sc = SSLContext.getInstance("TLSv1.2"); 
        sc.init(null, null, new java.security.SecureRandom());
        con.setSSLSocketFactory(sc.getSocketFactory());

Помогите мне понять, что происходит, если я не установил SSLContext и поведение при добавлении SSLContext.

...