Certificates does not conform to algorithm constraints 解决方案

背景

原本好好的项目突然运行出现这个错误Certificates does not conform to algorithm constraints,代码什么都没修改

问题分析

证书不符合算法约束,那就是我们的jdk算法约束出现了点问题

解决步骤

  1. 在jdk的安装目录找到java.security文件,可参考于我的路径jdk1.8.1_121/jre/lib/security/java.security
  2. 修改jdk.tls.disabledAlgorithms
    这里可以修改成jdk.tls.disabledAlgorithms=,但这就意味着不限制加密算法,可用于排查错误,一般来说修改成这样是百分比能成功的。
    如果你清楚证书加密是使用了哪种具体的加密格式,如RSA算法,则可以设置具体的长度限制。比如你使用的RSA加密算法长度在1024以上,那就得限制1024以下的长度:jdk.tls.disabledAlgorithms=RSA keySize < 1024 这只是举个例子,具体其它的限制配置也可以加上的。
    一般来说,将tlsv1、tlsv1.1、3des_ede_cbs删除即可解决大部分人的问题,如果你不清楚要删除哪些,可以试一下
  3. 如果是修改了具体算法限制,还需要清除浏览器缓存,否则也会不生效的

未解之谜

我的配置在修改之后,清除缓存生效了,但是我明白之前为什么会出现这个问题,我将配置修改回来原本的配置,清除浏览器缓存,结果又能正常访问了。然后过了一个多小时之后,问题再一次出现。

问题解决

后来排错的时候,将jdk.certpath.disabledAlgorithmsjdk.tls.disabledAlgorithms中关于MD5的算法都去掉就成功了。由于我的系统接入别人的系统,证书编码格式不清除,所以只能一个个摸索。如果是自己的系统,知道域名证书的具体编码格式,那就好办多了,将编码格式移除即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值