赞
踩
我们公司和其他公司有业务往来,我们需要调用他们的Https的接口,前期测试调用他们的接口一切正常,后期对接的过程中,他们升级了JDK版本,然后Java接口崩了,调试发现控制台打印出SSLException: Received fatal alert: 信息,然后开始进入了百度和谷歌之旅。
茫茫的博客看得一头雾水,尽管做尽尝试,没一篇能解决得了我当前遇到的问题,直到这篇博客出现在眼前https://www.jianshu.com/p/acbfea5ec597,脑袋了多了一份思考,尽管第一次看得时候有点迷茫,多次翻阅突然顿悟其中应该关注的问题点(https连接握手失败,要么协议有问题,要么协议加密算法有问题,要么证书签名有问题)。
https协议通讯是由tomcat服务器实现的,而tomcat是由java编写的,所以tomcat的运行依赖jdk的环境,其实说白了就是依赖JDK的一些安全机制算法,这就解释了为什么对方升级JDK环境会导致我们java接口的崩溃,尽管我们和对方的JDK都是1.8版本(我们1.8_162,他们1.8_242),但是不同版本的JDK默认的加密策略略有不同,JDK之所以出现这种问题,是因为某些国家法律上限制了某些加密策略。由上所述,这就可能导致了一个问题:我们本地JDK支持的加密策略,对方不支持,导致了tomcat无法建立合法的https连接,所以我们本地看到这个异常SSLException: Received fatal alert。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。