Java ssl против сервера jboss - PullRequest
0 голосов
/ 06 февраля 2019

У меня следующая проблема.У меня есть консоль сервера jboss и некоторые приложения, развернутые на ней, они взаимодействуют между собой во время отдыха.Поэтому я должен подключиться так:

        HttpURLConnection connection = null;
        try  {
            URL url = new URL("https://xxxx:xxxx/resource);
            connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.connect();
        } catch (MalformedURLException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        }

"x" означает, что ip-сервер jboss и порт expose могут быть 8443 или 8080, в зависимости от используемого протокола.

Дело в том, что когда мое приложение пытается подключиться, выбрасывает следующую трассировку стека:

2019-02-05 16:54:00,029 ERROR [stderr] (taskScheduler-1) javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
2019-02-05 16:54:00,029 ERROR [stderr] (taskScheduler-1)    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
2019-02-05 16:54:00,029 ERROR [stderr] (taskScheduler-1)    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
2019-02-05 16:54:00,029 ERROR [stderr] (taskScheduler-1)    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)
2019-02-05 16:54:00,029 ERROR [stderr] (taskScheduler-1)    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
2019-02-05 16:54:00,029 ERROR [stderr] (taskScheduler-1)    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)      
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at sun.security.ssl.Handshaker.process_record(Handshaker.java:914)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:396)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:355)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:359)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
2019-02-05 16:54:00,030 ERROR [stderr] (taskScheduler-1)    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)

Это заставляет меня думать, что это что-то в ssl и sni, но я не знаю, как добиться этого из кода,Я также нашел в консоли jboss эти ключи со своими значениями в системных свойствах: javax.net.ssl.trustStore, java.net.preferIPv4Stack и javax.net.ssl.trustStorePassword.

Но я незнаю, нужны ли они мне или для чего они на самом деле.

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