使用 Ksign 和 Comodo 证书无法对使用 JPackage 和 Java 21 构建的 Java 安装程序进行数字签名,对于 Java 20 没问题

问题描述 投票:0回答:1

我的 Java 应用程序使用 Oracles JPackage 构建安装,然后使用 ksigncmd 使用 comodo 提供的证书对安装程序进行数字签名

例如

c:\Code\jthink\SongKong>"C:\Program Files\Eclipse Adoptium\jdk-20.0.2.9-hotspot\bin\jpackage" --add-launcher SongKongDebug=songkongdebug.properties --add-launcher SongKongRemote=songkongremote.properties @jpackage.txt

c:\Code\jthink\SongKong>attrib -r SongKong-10.0.exe

c:\Code\jthink\SongKong>C:\Apps\Code\kSign\ksigncmd /d "SongKong Installer" /du "http://jthink.net/songkong" /f c:\code\signing\comodo.pfx /p password SongKong-10.0.exe

工作多年。

为了解决 JPackage 的问题,我想使用 Java 21 版本的 JPackage,但是当我这样做时,签名现在失败并显示 发生了未知错误。请联系您的供应商寻求帮助

例如

c:\Code\jthink\SongKong>"C:\Program Files\Eclipse Adoptium\jdk-21.0.1.12-hotspot\bin\jpackage" --add-launcher SongKongDebug=songkongdebug.properties --add-launcher SongKongRemote=songkongremote.properties @jpackage.txt

c:\Code\jthink\SongKong>attrib -r SongKong-10.0.exe

c:\Code\jthink\SongKong>C:\Apps\Code\kSign\ksigncmd /d "SongKong Installer" /du "http://jthink.net/songkong" /f c:\code\signing\comodo.pfx /p password SongKong-10.0.exe
An unknown error has occured. Please contact your vendor for assistance

Java 21 版本中的哪些更改可能会阻止 ksigncmd 工作?

java certificate code-signing jpackage
1个回答
0
投票

您使用的证书很可能与 Java21 不兼容
解决方案: 请从供应商处获取新证书

根本原因:每当我们升级到Java版本时,我们都需要重新创建密钥库文件,因为每个Java版本都会删除一些服务提供者并添加/删除支持的算法/证书

参考网址:

  1. https://www.oracle.com/java/technologies/javase/21-relnote-issues.html#JDK-8295894有支持的安全算法列表

  2. https://docs.oracle.com/en/java/javase/21/security/oracle-providers.html#GUID-F41EE1C9-DD6A-4BAB-8979-EB7654094029有安全证书提供商详细信息

  3. https://docs.oracle.com/en/java/javase/21/migrate/removed-tools-and-components.html#GUID-D7936F0D-08A9-411E-AD2F-E14A38DA56A7有以下列表的信息从 Java21 中删除的工具 .

  4. 请参阅删除的功能和选项部分 https://www.oracle.com/java/technologies/javase/21-relnote-issues.html

如果 comodo 证书使用任何这些功能,Java21 会阻止它并且不会发生签名。

© www.soinside.com 2019 - 2024. All rights reserved.