You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询IBM WebSphere Liberty 23.0.0.6启用SHA-1签名JAR的替代方案

解决IBM WebSphere Liberty 23.0.0.6中启用SHA-1签名JAR的问题

针对你遇到的Oracle Java变通方案在IBM WebSphere Liberty内置JDK中无效的问题,以下是适配Liberty环境的解决步骤:

1. 修改IBM JDK的安全配置

IBM JDK的安全属性逻辑与Oracle JDK基本一致,但需要定位到Liberty内置JDK的配置文件:

  • 找到Liberty安装目录下内置JDK的java.security文件,路径通常为:[Liberty根目录]/java/jre/lib/security/java.security
  • 编辑该文件,调整两个关键安全属性:
    • 从jdk.certpath.disabledAlgorithms中移除SHA1 usage SignedJAR & denyAfter 2019-01-01
    • 从jdk.jar.disabledAlgorithms中移除SHA1 denyAfter 2019-01-01
  • 若不想修改全局JDK配置,可通过系统属性覆盖:创建自定义安全配置文件(比如custom.security),写入上述修改后的属性,然后在Liberty的server.env文件中添加:
    JAVA_OPTS=-Djava.security.properties=/path/to/your/custom.security
    

2. 配置Liberty服务器的JCE提供者与信任存储

Liberty的安全框架会额外校验JCE提供者,需要补充以下配置:

2.1 启用JCA特性并注册JsafeJCE提供者

编辑服务器的server.xml,添加或更新配置:

<featureManager>
    <feature>jca-1.7</feature> <!-- JCE依赖JCA特性,确保启用 -->
</featureManager>

<!-- 注册JsafeJCE提供者 -->
<jceProvider id="JsafeJCE" providerClass="com.rsa.jsafe.provider.JsafeJCE" providerName="JsafeJCE"/>

2.2 将cryptoj.jar的签名证书加入信任存储

异常提示cryptoj.jar未被可信签名者签名,需要把它的签名证书导入Liberty的信任存储:

  1. 导出签名证书:执行以下命令获取并导出证书
    keytool -printcert -jarfile /Lava/wlp/usr/servers/g7al85901f51.ihy.broadcom.net/apps/expanded/affwebservices.war/WEB-INF/lib/cryptoj.jar > cryptoj-cert.cer
    
  2. 导入到Liberty信任存储(默认路径为[服务器目录]/resources/security/truststore.p12):
    keytool -importcert -alias cryptoj-signer -file cryptoj-cert.cer -keystore /path/to/your/server/resources/security/truststore.p12 -storetype PKCS12
    
  3. 在server.xml中确保信任存储配置正确:
    <keyStore id="defaultTrustStore" location="${server.config.dir}/resources/security/truststore.p12" type="PKCS12" password="your-truststore-password"/>
    

3. 验证配置

重启Liberty服务器,检查应用启动日志,确认不再出现java.lang.SecurityException: JCE cannot authenticate the provider JsafeJCE和java.util.jar.JarException相关异常。

重要注意事项

  • 启用SHA-1签名JAR存在明确的安全风险,此方案仅作为临时兼容手段,建议尽快替换为使用SHA-256及以上哈希算法签名的JAR包。
  • 修改全局JDK配置会影响所有使用该JDK的Liberty实例,若需单独配置某台服务器,优先使用java.security.properties系统属性的方式。

内容的提问来源于stack exchange,提问作者Veera Lava Kumar Reddy Bandi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 18:40:17