问题描述:
服务端使用lighttpd提供服务,配置了digest认证方式+https. 之前使用jdk6+httpcomponent进行调用,访问正常响应,后来jdk升级到jdk7版本,原来正常的请求返回了400错误.HTTP/1.0 400 Bad Request,
排查过程:
1.分别使用jdk6,jdk7,jdk8编写测试用例进行测试
结果:除了jdk6返回正常以外,其他版本都是400错误
2.使用jdk7,分别单独测试https和digest认证
结果:200
经过以上2组测试,基本可以锁定问题出现在jdk7+https+digest的场景
3.使用chrome浏览器进行测试,发现依然是400错误
根据返回的tls相关信息,观察到lighttpd使用了TLS1.0版本,对比主流网站,使用的是TLS1.2版本
锁定问题:
lighttpd使用版本TLS1.0,与jdk7实现TLS1.2版本,在某些场景下不兼容所导致。
解决方案:
1.升级lighttpd使用的TLS版本到1.2
2.在httpclient段,设置http proxy,调用是成功的!揣测为保证TLS版本的兼容,client/proxy/server均使用了TLS1.0进行交互。
参考资料:
https://blogs.oracle.com/java-platform-group/entry/java_8_will_use_tls
http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6687282
http://mail.openjdk.java.net/pipermail/net-dev/2008-April/000209.html
http://blog.163.com/hlz_2599/blog/static/1423784742013415101252410/
http://blog.itpub.net/15480802/viewspace-1340982/
相关推荐
java环境jdk7+jre7压缩版 win64位版
jdk8+201+321,,,,jdk8+201+321,,,,jdk8+201+321,,,,jdk8+201+321,,,,jdk8+201+321,,,,jdk8+201+321,,,,jdk8+201+321,,,,jdk8+201+321,,,,jdk8+201+321,,,,jdk8+201+321,,,,jdk8+201+321,,,,jdk8+201+321,,,,jdk8+201...
以电商项目为线索,快速掌握 JDK17 + springboot3 + springcloud Alibaba 专栏源码。 2 技术选型 JDK17 持久层: MyBatis-Plus 数据库: MySQL5.7 其他: SpringCloud Alibaba 技术栈 服务注册与发现:Nacos ...
我上一个就别下载了,不能用我也删不掉,这个完全没问题,亲测,不明白的可以加我微信:740949744
spring+spring mvc+hibernate+bootstrap+jquery+easyUI图书馆后台管理系统
资源包括 tomcat7+jdk1.7+redis session共享; tomcat8+jdk1.8+redis session共享; jar包+配置文件都有
建议:64位系统装64位的JDK,Tomcat不一定是64位的,32位的tomcat,同样可以正常使程序运行;
jdk8+jdk16+jdk17,window系统,64位
app后台服务Demo(jdk7+tomcat7+maven+jersey+mybatis+spring+jackson)
jdk8+tomcat8.5+maven
打包内含两个JDK7+Tomcat7 Linux64,一般安装tomcat都需要配置jdk所以两个一块下载下来安装
jdk1.7+tomcat7打包下载jdk1.7+tomcat7打包下载jdk1.7+tomcat7打包下载
11
linux下安装部署jdk7+tomcat7+mysql56+redis3linux下安装部署jdk7+tomcat7+mysql56+redis3
JDK8 + Tomcat8.0 + SpringMVC4 + Spring4 + Hibernate4 + MySQL5.6
jdk8+tomcat9.rar
centos下安装jdk7+tomcat7+mysql5.5.28 这是目前比较新的版本的,经过测试,可用
包含JDK6、JDK7、JDK8,共三个版本。
JDK+TOMCAT+MYSQL图文安装教程
jdk1.8.0+tomcat-7+maven-3.3.9 64位 后续继续发布java开发所用到的实用工具,有不明白的留言