var jobsSinceLastRun = _rep.GetJobs(j => j.CompletedDate > DateTime.Now.AddMonths(-1));
当我在独立的Java代码中运行相同的代码时,我得到响应,而当我在网络应用程序中运行时,我得到错误。
Java 1.8和tomcat 6.0.53引起:java.io.EOFException:SSL对等关闭不正确
代码:
DateTime oneMonthAgo = DateTime.Now.AddMonths(-1);
var jobsSinceLastRun = _rep.GetJobs(j => j.CompletedDate > oneMonthAgo);
java -cp catalina.jar org.apache.catalina.util.ServerInfo
Server version: Apache Tomcat/6.0.53
Server built: Apr 19 2017 22:34:06 UTC
Server number: 6.0.53.0
OS Name: Linux
OS Version: 4.1.7-15.23.amzn1.x86_64
Architecture: amd64
JVM Version: 1.8.0_171-b10
JVM Vendor: Oracle Corporation
答案 0 :(得分:1)
答案 1 :(得分:0)
最后,我能够在朋友的帮助下解决。 我们能够通过启用SSL调试 -Djavax.net.debug = ssl 来调试并指出问题,这将提供与SSL相关的所有调试日志。
问题是tomcat指的是旧版本的java 1.8。与较旧版本的密码套件相比,较新版本的Java 1.8具有更多可支持的密码套件。
服务器期待更强大的密码套件(从TLS1.0到TLS1.2的PCI标准更新) 我很幸运能理解基本过程
当我们调用API时,客户端通过提供安全协议和密码套件向服务器问好。
*** ClientHello, TLSv1.2
客户端 - 发生服务器握手
服务器向客户端发送Hello
扩展名extended_master_secret 扩展server_name,server_name:[type = host_name(0),value = *****] http-443-exec-5,WRITE:TLSv1.2握手,长度= 206 http-443-exec-5,READ:TLSv1.2握手,长度= 93 *** ServerHello,TLSv1.2
使用密码套件验证证书
SSL - 对我来说仍然是一个未解之谜,也是一个可爱的话题。 SSL将手放入大脑: - )