【问题标题】:Can not verify rule set jar无法验证规则集 jar
【发布时间】:2017-03-02 13:25:25
【问题描述】:

这里再尝试打开一条消息

我的公司希望将部署规则集用于多个 java 版本的使用。

目前我们有 1.6.0_13、1.7.0_51 和 1.8.0_66 Java 8 是在 java 控件主页的 System 选项卡中选择的 用户选项卡由 java 6、7 和 8 组成

deployment.properties 中的所有设置都是默认设置并指向正确的位置或值

环境变量集 java_home ="C:\Program Files (x86)\Java\jdk1.8.0_66\bin" path = 设置为正确的位置

我遵循的步骤如下,

  1. 创建密钥库 keytool -genkey -dname "cn=drstest, ou=abac, o=mycompany, c=SE" -keyalg RSA -keysize 2048 -alias testsign -keypass password -keystore mykeystore.jks -storepass password -validity 1460

  2. 下载了 csr 文件 keytool -certreq -alias testsign -file certreq.csr -keystore mykeystore.jks -storepass 密码

  3. 使用 csr 文件并将其发送到我公司的 CA 进行签名。

  4. 从 CA 收到两个文件:cer 和 p7b 文件

  5. 导入 CSR 回复: keytool -import -trustcacerts -file certnew.p7b -alias testsign -keystore mykeystore.jks -storepass 密码

  6. 已下载并在密钥库中添加所需的链证书。

  7. 创建了规则集.xml

  8. 使用 jar.exe 创建了 jar 文件 jar.exe -cvf DeploymentRuleSet.jar 规则集.xml

  9. 将 jar 文件签名为密钥库 jarsigner -keystore mykeystore.jks DeploymentRuleSet.jar testsign

  10. 添加了时间戳 jarsigner -verbose -keystore mykeystore.jks -storepass 密码 -keypass 密码 -tsa http://timestamp.comodoca.com/rfc3161 DeploymentRuleSet.jar testsign -J-Dhttp.proxyHost=xxx.xxx.COM -J-Dhttp.proxyPort=8080

  11. 将 DeploymentRuleSet.jar 放在 C:\Windows\Sun\Java\Deployment 文件夹中

现在当我使用 java control home 进行测试时 控制面板 -> Java -> 安全选项卡 -> 查看活动部署规则集 ->

我收到的消息是 “DeploymentRuleset.jar 无效” “无法验证规则集 jar”

我可以在“查看证书详细信息”中看到我的证书

现在我花了这么多小时,浏览了这么多网页,仍然不知道为什么它是无效的。

这不是火箭科学,但我还是被困住了。

谁能指出我哪里出错了。

*********我不确定cacerts文件是否有任何步骤,如果我错过了cacerts的某些内容,请指导我*************

问候

【问题讨论】:

  • 如果没有看到你的ruleset.xml,这个问题是无法回答的。

标签: java certificate keytool jarsigner jar-signing


【解决方案1】:

试试这个,

要么使用较旧的 JDK 来签署您的 DSR jar ... 例如 1.6.0_13 JDK

使用较新的 JDK 将其添加到您的 jarsigner 命令 -tsadigestalg SHA1

jarsigner -tsadigestalg SHA1 -verbose -keystore mykeystore.jks -storepass password -keypass password -tsa http://timestamp.comodoca.com/rfc3161 DeploymentRuleSet.jar testsign -J-Dhttp.proxyHost=xxx.xxx.COM -J-Dhttp.proxyPort=8080

Oracle 在这篇文章中提到了一些关于它的事情

7 Update 76 及更早版本的 Java SE 引发 JARSigningException,其中 Jar 文件使用 Java SE 8u92-b31 及更高版本的“-tsa”选项签名 (2191197.1) https://support.oracle.com/epmos/faces/DocContentDisplay?id=2191197.1

这对我有用

【讨论】:

    猜你喜欢
    • 2021-11-14
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    相关资源
    最近更新 更多