keytool - 仅使用可信证书进行 jarsigner 验证?

标签 keytool jarsigner

我注意到在 keytool 文档中它写着 “jarsigner [...] 检查该证书的公钥是否‘可信’,即包含在指定的 keystore 中。” 而 jarsigner 联机帮助页指出 “验证 [...] 时不需要 keystore ”,并且该实用程序将始终根据 jar 提供的证书进行验证。 在我看来,这有点违背了目的,因为它只能证明 jar 自签名以来没有被更改,但不能证明它是由某个特定机构/供应商签名的。

如果用于签署 jar 的证书在运行时系统上未知/不可信,是否有某种方法使验证失败? 或者我必须使用脚本来调用 jarsigner -verify -verbose -keystore ... 并解析输出以查看本地(运行时) keystore 中是否存在签名证书的条目?

困惑, 彼得

最佳答案

jarsigner 实用程序对于 JAR 签名验证毫无用处,因为它不验证签名者证书,不检查签名上的可信时间戳,并且不提供可用的结果(解析控制台输出不是一个很好的解决方案)。

为了避免这种限制,我们选择编写自己的 verify_jar实用程序。

关于keytool - 仅使用可信证书进行 jarsigner 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5554632/

相关文章:

java - ".android"文件夹和 "debug.keystore"文件丢失

java - 如何将 p7s 证书链导入 keystore ?

ssl - 获取 "No certificate matches private key"

java - jarsigner -verify 适用于 Java 6 但不适用于 Java 7

java - Jar 文件在签名之前一直有效(在 Windows 中)

jarsigner - 如何通过命令行传递jarsigner.exe密码?

keytool - keystore 密码太短 - 导入时必须至少有 6 个字符

ssl - 如何为 https 配置添加多个主机名支持?就像我想使用域访问以及使用 https 访问 ip 地址

linux - Shell 在 jarsigner 中传递 keystore 路径参数

java - 无法签署 jar : java. io.IOException:无效编码:冗余前导 0