Не удается проверить набор правил jar

#java #certificate #keytool #jarsigner #jar-signing

#java #сертификат #keytool #jarsigner #jar-подписание

Вопрос:

Еще одна попытка открыть сообщение здесь

Моя компания хочет использовать набор правил развертывания для использования нескольких версий Java.

В настоящее время у нас есть версии 1.6.0_13, 1.7.0_51 и 1.8.0_66 Java 8 — это то, что выбрано на вкладке System на вкладке java control home User, состоит из java 6, 7 и 8

все настройки в deployment.properties установлены по умолчанию и указывают на правильные местоположения или значения

переменные env устанавливают java_home =»C:Program Files (x86) Java jdk1.8.0_66 bin» путь = установлено правильное расположение

Шаги, которым я следовал, приведены ниже,

  1. создайте хранилище ключей keytool -genkey -dname «cn=drstest, ou= abac, o =mycompany, c = SE» -keyalg RSA -размер ключа 2048 -псевдоним testsign -пароль для доступа к ключу -хранилище ключей mykeystore.jks -пароль для доступа к хранилищу -срок действия 1460

  2. загружен csr-файл keytool -certreq -alias testsign -file certreq.csr -хранилище ключей mykeystore.jks -пароль для доступа к хранилищу

  3. Использовал файл csr и отправил его в центр сертификации моей компании для подписания.

  4. Получено два файла: файлы cer и p7b из CA

  5. Импортируйте ответ CSR: keytool -import -trustcacerts -file certnew.p7b -псевдоним testsign -хранилище ключей mykeystore.jks -пароль доступа к хранилищу

  6. Загружены и добавлены требуемые сертификаты цепочки в хранилище ключей.

  7. создал ruleset.xml

  8. создал файл jar с помощью jar.exe jar.exe -cvf DeploymentRuleSet.jar ruleset.xml

  9. подписал файл jar в хранилище ключей jarsigner -хранилище ключей mykeystore.jks DeploymentRuleSet.jar testsign

  10. добавлена временная метка jarsigner -verbose -хранилище ключей mykeystore.jks -пароль доступа к хранилищу -пароль доступа к ключу -tsahttp://timestamp.comodoca.com/rfc3161 DeploymentRuleSet.jar testsign -J-Dhttp.proxyHost=xxx.xxx.COM -J-Dhttp.proxyPort=8080

  11. Разместил DeploymentRuleSet.jar в C:WindowsSunJavaDeployment папка

Теперь, когда я тестирую с помощью домашней панели управления java control -> Java -> вкладка Безопасность -> Просмотреть набор правил активного развертывания ->

я получаю сообщение как «DeploymentRuleset.jar недопустимо» «Не удается проверить jar набора правил»

Я могу увидеть свой сертификат в разделе «Просмотр сведений о сертификате»

Теперь я потратил так много часов и просмотрел так много веб-страниц, и все еще не знаю, почему это недопустимо.

Это не ракетостроение, но все же я застрял.

Может ли кто-нибудь указать, где я ошибаюсь.

********* я не уверен, есть ли какие-либо шаги для файла cacerts, если я что-то пропустил для cacerts, пожалуйста, подскажите мне*************

С уважением

Комментарии:

1. На этот вопрос невозможно ответить, не увидев ваш ruleset.xml .

Ответ №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 упоминает кое-что об этом в этой статье

Java SE с 7 обновления 76 и более ранних версий выдает исключение JARSigningException для файлов Jar, подписанных с использованием опции ‘-tsa’ в версиях Java SE 8u92-b31 и более поздних (2191197.1)https://support.oracle.com/epmos/faces/DocContentDisplay?id=2191197.1

Это то, что сработало для меня