Получено фатальное предупреждение: ошибка handshake_failure на странице JSP

#jsp #ssl-certificate #handshake

#jsp #ssl-сертификат #рукопожатие

Вопрос:

У меня странная проблема с авторизованным SSL-соединением. Сначала я создал класс java, который подключается к внешнему серверу с авторизованным ssl. Я запустил этот класс в командной строке, он работает нормально, получает желаемые результаты с внешнего сервера. После того, как я использую этот класс на странице JSP. После перезагрузки моя страница tomcat JSP также дает мне желаемые результаты. Но после 10-15 запросов страница JSP выдает мне эту ошибку: «javax.net.ssl.SSLHandshakeException: Получено фатальное предупреждение: handshake_failure «. На странице JSP больше нет желаемых результатов.

Вот метод в коде класса Java:

 public String TransHttpsAuth(String server, String param, String method, String jksPath, String jksPass)
{
    try
    {
        System.setProperty("javax.net.ssl.keyStoreType", "jks");
        System.setProperty("javax.net.ssl.keyStore", jksPath);
        System.setProperty("javax.net.ssl.keyStorePassword", jksPass);

        server=server "/?"  param;


        URL url = new URL(server);
        HttpsURLConnection httpurlconnection = (HttpsURLConnection)url.openConnection();

        httpurlconnection.setHostnameVerifier(new NullHostnameVerifier());
        httpurlconnection.setRequestMethod(method);
        httpurlconnection.setDoOutput(true);

        httpurlconnection.connect();
       InputStreamReader in = new InputStreamReader((InputStream) httpurlconnection.getContent());

       BufferedReader buff = new BufferedReader(in);
       String line = buff.readLine();
        StringBuffer text = new StringBuffer();
       while (line != null) {
           text.append(line   "n");
           line = buff.readLine();
       }
       System.out.println(text.toString());
       httpurlconnection.disconnect();
        return text.toString();
    }
    catch(Exception exception)
    {
        return exception "";
    }
}
  

Вызов со страницы JSP: <%
fsb fsb = new fsb();

out.println(fsb.TransHttpsAuth(«https://ext_server «, «prameters», «GET», «jks_path», «password»));
%>

Версия Tomcat: 6.0.32

Версия Java: 1.6.0_21

Ответ №1:

Вам нужно будет добавить сертификат сервера в вашу jre и перезапустить tomcat, чтобы подключиться с использованием java. Ищите InstallCert.java в Интернете.