java - 签名算法的算法约束检查失败:MD5withRSA
问题描述
今天想在AEM中使用HttpClient调用Hybris接口。但我收到错误消息“java.security.cert.CertPathValidatorException:签名算法的算法约束检查失败:MD5withRSA”。
在这一行中抛出异常“java.security.cert.CertPathValidatorException:签名算法的算法约束检查失败:MD5withRSA”。
httpClient.executeMethod(request);
我在 java.security 文件(C:\Program Files\Java\jdk1.8.0_191\jre\lib\security\java.security)中将下面的属性更改为空,但它不起作用。
jdk.certpath.disabledAlgorithms
jdk.tls.disabledAlgorithms
jdk.jar.disabledAlgorithms
我的 JDK 版本:jdk1.8.0_191
有谁知道如何解决它?
谢谢,阿甘
解决方案
另外:该jdk.jar.disabledAlgorithm
属性与此问题无关。
确保您实际更改了程序所看到的文件。
现代版本的 Windows(自 Vista 以来的 IIRC,可能是 7)不喜欢安装程序以外的任何东西下的文件
\Program Files
和\Program Files (x86)
由任何东西编写的文件。他们至少有时会做的一件事是将此类写入“虚拟化”到隐藏在 per-user 下某处的不同文件%appdata%
。搜索,你会发现很多类似的问题和挫折。调用
Security.getProperty()
以检查程序中实际看到的设置。
java.security.properties=filename
如果您无法修复标准文件中的设置,您可以通过设置 sysprop(不是 secprop)或Security.setProperty()
在程序的早期调用(在加载 JSSE/PKIX 类之前)在另一个文件中覆盖它(放在更方便的地方) . 请参阅:
Relaxing SSL algorithm constrains programatically
Java - Lock down TLS version in java.security, but allow per app override via launch config?
或者,JDK 并不真的需要在\Program Files*
. 我把它放在另一个顶级目录中,没有这些问题。
当然,告诉负责服务器的人他们已经落后于时代:-)
推荐阅读
- python - 如何使用 Python 在 Selenium 中同时运行多个 webdriver 进程?
- adobe - 结果 = “错误 25:预期:)。行:1 -> $._ext_Illustrator.embedPDF(D:/IllustratorTest/test.pdf)
- sql - 在sql中压缩行
- oracle - Oracle OS 身份验证
- python - Django 自定义装饰器 - 属性错误
- react-native - 读取加速度计数据的后台任务
- ms-access - 计算字段中的 MS ACCESS 格式数字
- java - Android Studio API 级别 23+ 中的 HTTP 获取
- shell - NewNetIPAddress:ActiveStore 与 PersistantStore
- java - 在 Spring 多租户配置期间自动装配 Jpa 存储库