在OpenJDK 1.8.392运行Corda遇证书链错误,如何指定JVM用SHA512withECDSA?
解决OpenJDK 1.8中指定使用SHA512withECDSA算法的方法
以下是几种可行的方案,帮你强制JVM或ActiveMQ Artemis客户端使用SHA512withECDSA进行证书验证:
通过JVM启动参数调整算法优先级
在启动Corda的JVM命令中添加以下参数,让SHA512withECDSA优先被选用:-Djdk.security.legacyAlgorithms=SHA512withECDSA,SHA256withECDSA该参数会修改JDK内置的算法优先级配置,迫使ActiveMQ Artemis客户端优先尝试SHA512withECDSA算法。
修改ActiveMQ Artemis客户端配置
如果是通过代码配置连接工厂,可直接指定签名算法参数:connectionFactory.setExtraParams("sslEnabled=true;signatureAlgorithm=SHA512withECDSA");若使用XML配置文件(如
artemis-client.xml),则在SSL配置节点中添加:<ssl> <signature-algorithm>SHA512withECDSA</signature-algorithm> </ssl>调整JDK全局安全配置
找到OpenJDK安装目录下的jre/lib/security/java.security文件,检查并修改jdk.certpath.disabledAlgorithms与jdk.tls.disabledAlgorithms配置,确保SHA512withECDSA未被禁用,同时可调整算法顺序让其优先级高于SHA256withECDSA。注意此方式为全局生效,会影响同一JVM下的所有应用。
内容的提问来源于stack exchange,提问作者Krishna
相关产品推荐
相关产品推荐

