我使用 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 中描述的主题导致问题的原因我找不到任何证据。
是否有人已经偶然发现了类似或相同的问题,并且更重要的是找到了解决方案?
最佳答案
问题不在于新证书。它实际上取决于另外两个因素。
- 获取 jarsigner 的 Java 版本。如果您从某些 Java 8 JDK 中获取 jarsigner,则它可能不再适用于每个 Java 7 JRE,因为“时间戳摘要算法”使用了 SHA256。
- 用于时间戳的 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/