2016-07-18 2 views
0

Я пытаюсь проверить погоду на моем сервере jboss или нет или просто URL доступен или нет. Я достигаю того же, используя responseCode, то есть 200 для OK. Я могу сделать для HTTP, но не для HTTPS. Итак, мне нужен код ответа для HTTPS.Получить код ответа для подключения HTTPS

Я использую ниже код

 HttpURLConnection urlCon = null; 
     URL url = new URL("http://localhost:8080/abc"); 
     urlCon = (HttpURLConnection) url.openConnection(); 
     System.out.println(urlCon.getResponseCode()); 
     if(urlCon.getResponseCode() == 200) 
     { 
      System.out.println("Server is up"); 
     } 

отлично работает для HTTP, но когда я пытаюсь то же самое для HTTPS Это дает соединение отклонять или SSLhandshakeException

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:882) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1188) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1215) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1199) 
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) 
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195) 
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379) 
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:318) 
    at com.de.base.tools.Sample.main(Sample.java:23) 
Caused by: java.io.EOFException: SSL peer shut down incorrectly 
    at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:462) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:863) 
    ... 9 more 

Я попытался HttpURLConnection к HttpsURLConnection, но дает тот же

Кто-нибудь знает, как добраться responceCode() за HTTPS

Спасибо.

+0

Используете ли вы правильный порт для HTTPS? Серверы с HTTP 8080 _usually_ имеют HTTPS на 8443 (хотя ничего не требует этого). –

+0

У меня есть config apache и есть порт для отправки 443 –

+0

Вы сказали, что пытаетесь подключиться к Jboss, а не к Apache. Что он? Apache обычно использует стандартные порты, 80 для HTTP и 443 для HTTPS; Обычно Jboss этого не делает. –

ответ

1

Я думаю, что это проблема с самоподписанными сертификатами, которые не находятся в вашем магазине доверия. Вы можете проверить его при запуске своего клиента: -Djavax.net.debug=ssl Его включение отладки для ssl, и вы получите лучший результат ошибки. Если вы хотите исправить проблему с самозаверяющим сертификатом, вы должны добавить его в свой надежный магазин ключей Java. Я думаю, что в this вопрос - ваши ответы на это.

+0

Ошибка по-прежнему сохраняется –

+0

Я ссылался на [This] (http://stackoverflow.com/questions/1828775/how- to-handle-invalid-ssl-certificates-with-apache-httpclient) –

+0

Некоторые ошибки SSL/TLS вызваны сертификатами, всех типов как подписанных, так и подписанных CA, но некоторые из них не являются, и если вы посмотрите на Фактическое исключение в этом случае абсолютно не вызвано каким-либо сертификатом. –

Смежные вопросы