记录一次https的调试

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/xxyybs/article/details/73530647

前言:最近公司b2b,b2c生产环境更换了http协议为https,随之而来就是所有内外部通讯通知,都要更换,所以有了这次https的调试。
注释:这里面Java https发送的代码就不展示了,网上也可以找到很多,如果有需要我可以后续粘贴出来。

第一次调试
语言:Java 
环境:JDK1.7

启动服务,第一次发送带参数的POST的HTTPS 请求。
这里提示报sslv3错误
问题:提示SSLv3协议错误,服务器选择sslv3但是本地环境不支持。
为啥不支持SSLv3协议?这里我搜索了下相关问题。原来是SSLv3有安全漏洞,JDK1.7以后已经把SSLv3默认禁止了。
但是此时,我需要使用到SSLv3在已有的环境中怎么办?更换JDK试试?于是有了第二次调试。

第二次调试
语言:Java
环境:JDK1.6

因为项目是以JDK1.7环境开发的所以更换为1.6以后项目很多报错,所以只能以main函数的方式进行测试。
结果为通讯正常。终于通了,验证了这个问题。
**1.JDK1.6 SSLv3协议可以使用。
2.JDK1.7 因为安全问题应该是禁止或是移除了SSLv3协议。**
这样就有了眉目,如果JDK1.7是禁止了协议,应该会有方法找回来,如果是移除掉了就不好办了。

第三次调试
语言:Java
环境:JDK1.7

鉴于前两次的调试,有了些解决的思路。既然是安全问题使JDK1.6以后不能再使用SSLc3协议,那我就去看看JDK1.7的安全配置文件有没有线索。\jre\lib\security\java.security


打开java.security 文件,试着搜索一下SSLv3,结果查找出一条这样的信息。

jdk.tls.disabledAlgorithms=SSLv3

disabled禁止了SSLv3协议,尝试注掉这行配置。

#jdk.tls.disabledAlgorithms=SSLv3

再次运行,成功运行!这次https的调试终于暂时结束了。


ps:jdk里面会有两个文件夹jre的,以jdk1.7 为例,里面就有jre 和 jre7,修改配置文件只需要修改jre中的java.security 文件就可以。还有注掉这行配置可能有安全问题的隐患,我的这次调试只是有一个解决这个问题的思路。希望能有个更好的解决这个问题的方法。

猜你喜欢

转载自blog.csdn.net/xxyybs/article/details/73530647