Ошибка при получении - javax.net.ssl.SSLHandshakeException: сервер выбрал TLSv1, но эта версия протокола не включена или не поддерживается клиентом - PullRequest
0 голосов
/ 03 июня 2018

Ошибка получения - javax.net.ssl.SSLHandshakeException: сервер выбрал TLSv1, но эта версия протокола не включена или не поддерживается клиентом при совершении вызова к защищенному веб-сервису.

Добавлена ​​следующая опция к переменной JAVA_OPTIONS в mydomain \ bin \ setDomainEnv.cmd, как рекомендовано на сайте oracle, но та же проблема.

-Dweblogic.security.SSL.protocolVersion = TLS1

        Java client code :
        File pKeyFile = new File("C:\\myJKS.jks");   
        if (pKeyFile.exists() && !pKeyFile.isDirectory()) {
            logger.debug("JKS file exists, and it is a file");
        }
        KeyStore keyStore = KeyStore.getInstance("JKS");
        keyStore.load(new FileInputStream(pKeyFile.toString()),
                pKeyPassword.toCharArray());
        KeyManagerFactory keyManagerFactory = KeyManagerFactory
                .getInstance("SunX509");
        keyManagerFactory.init(keyStore, pKeyPassword.toCharArray());
        **SSLContext context = SSLContext.getInstance("TLSv1.1");**
        context.init(keyManagerFactory.getKeyManagers(), null,
                new SecureRandom());
        sockFact = context.getSocketFactory();
        if(sockFact == null){
            logger.debug("SocketFactory is null");
            throw new NullPointerException("socketFactory == null");
        }

Клиент Env - версия JDK: 7, Сервер приложений: Weblogic.

Попытка заставить его работать изпару дней, но не повезло.

...