java - 已签名的 jar 文件在 java 1.7.0_76 中可识别,但在 java 1.7.0_75 中无法识别

标签 java security java-7 jarsigner jar-signing

我使用 jdk 1.7.0_71 提供的签名器签署了一个 jar 文件。这之前也有效,直到我们从

更新
X.509, CN=GlobalSign CodeSigning CA - SHA256 - G2, O=GlobalSign nv-sa

X.509, CN=GlobalSign CodeSigning CA - SHA256 - G3, O=GlobalSign nv-sa

现在我们的行为是,jar 文件被识别为在 1.7.0_76 处签名,但不是在 1.7.0_75 处签名。我看到的唯一区别是世代。

虽然我有强烈的感觉,一些安全更新类似于 Signing JAR files in the explorer showing "unsigned" when verifying them 中描述的主题导致问题的原因我找不到任何证据。

是否有人已经偶然发现了类似或相同的问题,并且更重要的是找到了解决方案?

最佳答案

问题不在于新证书。它实际上取决于另外两个因素。

  1. 获取 jarsigner 的 Java 版本。如果您从某些 Java 8 JDK 中获取 jarsigner,则它可能不再适用于每个 Java 7 JRE,因为“时间戳摘要算法”使用了 SHA256。
  2. 用于时间戳的 URL。如果您使用的安全性更高(比如 SHA256),它也不再适用于每个 Java 7 JRE,因为再次使用 SHA256,现在是“时间戳签名算法”。

关于java - 已签名的 jar 文件在 java 1.7.0_76 中可识别,但在 java 1.7.0_75 中无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43605944/

相关文章:

java - AspectJ 的 NoSuchMethodError

javascript - EventSource 和基本的 http 身份验证

security - 访问 `proc` 文件系统以从系统应用程序读取 `/proc/[pid]/some-file`

java - 如何在 Mac 上安装替代 JDK 而不覆盖当前版本

java - 在 JTextPane (Java 7) 中包装长词

java - 将枚举实例引用为该类型的另一个实例的字段是否合法?

java - Activity 类中的 AsyncTask

java - 使用 Spring AOP 创建拦截器

php - htaccess 防止直接访问路径并用另一个覆盖

java - gwt 接口(interface) HostedModeOptions 扩展了超过 1 个类