我的代码试图在与应用程序相同的服务器上访问模板文件。 在我们开启SSL之前,一切正常。
现在连接到文件时,我收到SSLHandshakeException:handshake_failure,但没有太多关于问题实际原因的信息。 如果我尝试通过浏览器访问该文件,我会收到一个警告页面,询问我是否要自行承担风险。
证书有问题吗?我能绕过它吗?
编辑:服务器是带有Java 1.7的JBoss EAP 6.1。它配置为使用TLS1.2。 检索模板的位是:
URL url;
URLConnection urlConnection;
try {
url = new URL(templateUrl);
urlConnection = url.openConnection();
urlConnection.setConnectTimeout(connectionTimeout);
urlConnection.setReadTimeout(connectionTimeout);
BufferedReader breader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String line;
while ((line = breader.readLine()) != null) {
strHtmlContent.append(line);
}
}
答案 0 :(得分:0)
握手错误通常不是证书的问题,至少不是证书的验证。它可能有其他几个原因,通常是错误的协议版本,没有密码重叠,缺少SNI的使用....
不幸的是,在您的具体案例中无法说明问题是什么,但您可以通过尝试使用不同的客户端(即浏览器,卷曲,...)访问该网站来缩小范围。如果甚至浏览器都无法访问该站点,则可能是服务器配置错误。