HTTPS-соединение через любые версии SSL или TLS - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь реализовать HTTPS-соединение на основе SSL с другими серверами.

Мне нужно предоставить все протоколы (TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3) и в зависимости от того, что доступно иливключен, он должен иметь возможность согласовать эту версию самой.

В настоящее время это что-то вроде этого:

SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, /*some certs*/, new java.security.SecureRandom());
        HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

        String webServicePath =" https://google.com"  //suppose

        URL url = new URL(webServicePath); 

        HttpsURLConnection httpsCon = (HttpsURLConnection) url.openConnection(); 
        httpsCon.setRequestMethod("POST"); 
        httpsCon.setRequestProperty("Content-Type", "application/json");
        httpsCon.setRequestProperty("Content-Language", "en-US");
        httpsCon.setUseCaches(false);
        httpsCon.setDoInput(true);
        httpsCon.setDoOutput(true);
        httpsCon.setHostnameVerifier(new HostnameVerifier() {

            @Override
            public boolean verify(String hostname, SSLSession session) {
                return true;
            }
        }); 
        httpsCon.connect(); 

Я хочу что-то вроде: SSLContext.getInstance ("TLSv1.0, TLSv1.1, TLSv1.2 "); , но я не уверен, что этот метод принимает несколько аргументов.

Я нашел решения: Dhttps.protocols = TLSv1.2, TLSv1.1, TLSv1 »при запуске Java VM или в коде, эквивалентная директива системного свойства -« System.setProperty («https.protocols», «TLSv1.2, TLSv1.1, TLSv1») ».

Я хочу сделать это программно в своем коде, но я понятия не имею, как.

Я прочитал, что клиент и сервер согласовывают сообщение HELLO, пока они не согласовывают поддерживаемую версию протокола дуэтом.Чтобы добиться этого согласования, я должен реализовать его в исходном коде?

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