java - SSLException: Received fatal alert: internal_error (在 tomcat 下抛出,但在桌面上工作正常)

标签 java tomcat ssl sslexception

当我在桌面应用程序中应用该代码时:

 WebClient webClient = new WebClient();
 WebRequest wreq = new WebRequest( new URL (url), com.gargoylesoftware.htmlunit.HttpMethod.GET);
 HtmlPage p = (HtmlPage) webClient.getPage( wreq);

它工作正常,我得到一个答案:

[Raw read]: length = 5
0000: 16 03 03 00 5D                                     ....]
[Raw read]: length = 93

(然后进行握手)

但是当我尝试在 tomcat 的网络应用程序中使用完全相同的代码时,它显示错误:

[Raw read]: length = 5
0000: 15 03 03 00 02                                     .....
[Raw read]: length = 2
0000: 02 50                                              .P
tt_20170131_142449, READ: TLSv1.2 Alert, length = 2
tt_20170131_142449, RECV TLSv1.2 ALERT:  fatal, internal_error
tt_20170131_142449, called closeSocket()
tt_20170131_142449, handling exception: javax.net.ssl.SSLException: Received fatal alert: internal_error

TLS 版本相同。我尝试了一些通常在这种情况下建议的事情,比如 webClient.getOptions().setUseInsecureSSL(false) 等等,但是,正如我所说,这看起来不像是协议(protocol)问题,因为相同的代码在运行时运行得很好没有 Tomcat 。那么我应该去哪里挖掘才能找到解决方案呢?

还有不同长度的 MD5 和 SHA1 哈希值:

[写入] MD5 和 SHA1 哈希:len = 161 <--- 导致异常

[写入] MD5 和 SHA1 哈希:len = 213 <--- 工作正常

最佳答案

通过将 httpclient-4.3.1.jar 替换为 4.3.3 版本解决。

关于java - SSLException: Received fatal alert: internal_error (在 tomcat 下抛出,但在桌面上工作正常),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41957951/

相关文章:

java - Jersey 错误 java.lang.ClassNotFoundException : com. sun.jersey.spi.container.servlet.ServletContainer

java - org.apache.tomcat.util.bcel.classfile.ClassFormatException : Invalid byte tag in constant pool: 15

尝试在 MAC 上克隆 GIT 时出现 javax.net.ssl.SSLHandshakeException

ssl - 使用 orapki/wallet manager 在 oracle 11g 中使用 sha-256 作为哈希算法创建证书

unix 中的 java 类路径

java - 游戏中不会出现文字?

java - 使用 Apache Axis2 和 Tomcat 版本 7 的 Web 服务出现问题

python - Kafka SSL with Python : kafka. errors.NoBrokersAvailable: NoBrokersAvailable

java - 如何使用java将工作表添加到现有的大型Excel文件(20MB)?

Java Apache POI 错误