收到致命警报:JSP页面handshake_failure错误

问题描述:

我有一个奇怪的问题与授权的SSL连接。首先,我创建了java类,它使用授权的ssl连接到外部服务器。我已经在命令行运行这个类,它工作正常,从外部服务器获得所需的结果。在JSP页面中使用此类之后。重新启动后,我的tomcat JSP页面也获得了我想要的结果。但10-15请求JSP页面给我这个错误:“javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure”。在JSP页面中没有更多期望的结果。收到致命警报:JSP页面handshake_failure错误

这里是方法在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 =新FSB(); (fsb.TransHttpsAuth(“https:// ext_server”,“prameters”,“GET”,“jks_path”,“password”)); %>

的Tomcat版本:6.0.32

Java版本:1.6.0_21

您将需要添加在你的JRE的服务器证书,并重新启动Tomcat,以便用java连接。在网上寻找InstallCert.java。