有什么网站可以做电子,wordpress电子邮件要用什么,网站优化招商,普通电脑如何做网站服务器吗system.setProperty导致的https血案 现象排查思考建议 现象
系统外调签名服务突然无法使用#xff0c;排查发起请求的服务正常#xff0c;查看日志报recieve fatal alert: protocal_version, 当时大家没有深入研究代码#xff0c;印象里最近没有动过服务#xff0c;就网络… system.setProperty导致的https血案 现象排查思考建议 现象
系统外调签名服务突然无法使用排查发起请求的服务正常查看日志报recieve fatal alert: protocal_version, 当时大家没有深入研究代码印象里最近没有动过服务就网络抓包看发现报错时https协议从TLS变成了GMTLS故认为网络有影响问了网络同事未遂。
排查
我介入的时候前面的现象和调查已经都做了。我从头了解了一下情况然后在交流中知悉生产并没有问题遂问区别在那里此时开发人员说测试拆分了前置服务这块不一样其他接口都已经运行了很久了。那我就提议先停止新拆分的服务使用旧服务监控一下午看看一下午均正常。 在监控的时候我也去翻看了两个前置服务的代码发现新拆分的服务目前只有一个外调服务在用使用了https双向证书。又回去看了之前的服务的代码有好几个https外调但这部分已经上线许久了应该不是问题原因。于是就对比了两个服务https的代码逻辑发现了些许差异唯一特别的是新服务用到了system.setProperty(“https.protocols”,“TLSv1”)。一开始并没有注意到这块而是一直被GMTLS牵着走想到原服务里的国密代码是不是有影响。但不管那块都需要验证遂让开发人员在晚上对测试环境做了system.setProperty(“https.protocols”,“TLSv1”)代码移除。最后复现确实是这个引起的。
思考
问题虽然解决了但是根本原因是什么目前没有网上资料解释本人做了一个猜测如果原来使用TLS1.2 进行通讯突然有代码降低了TLS版本那么后续的TLS版本会根据通讯证书进行推断也就是这个导致协议变成了GMTLS。为什么会推断成国密我猜还是跟国密那部分代码有关系此处最近验证一下。
建议
https 请求时不用设置jvm参数防止多处不同TLS协议的兼容问题