#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» путь = установлено правильное расположение
Шаги, которым я следовал, приведены ниже,
-
создайте хранилище ключей keytool -genkey -dname «cn=drstest, ou= abac, o =mycompany, c = SE» -keyalg RSA -размер ключа 2048 -псевдоним testsign -пароль для доступа к ключу -хранилище ключей mykeystore.jks -пароль для доступа к хранилищу -срок действия 1460
-
загружен csr-файл keytool -certreq -alias testsign -file certreq.csr -хранилище ключей mykeystore.jks -пароль для доступа к хранилищу
-
Использовал файл csr и отправил его в центр сертификации моей компании для подписания.
-
Получено два файла: файлы cer и p7b из CA
-
Импортируйте ответ CSR: keytool -import -trustcacerts -file certnew.p7b -псевдоним testsign -хранилище ключей mykeystore.jks -пароль доступа к хранилищу
-
Загружены и добавлены требуемые сертификаты цепочки в хранилище ключей.
-
создал ruleset.xml
-
создал файл jar с помощью jar.exe jar.exe -cvf DeploymentRuleSet.jar ruleset.xml
-
подписал файл jar в хранилище ключей jarsigner -хранилище ключей mykeystore.jks DeploymentRuleSet.jar testsign
-
добавлена временная метка jarsigner -verbose -хранилище ключей mykeystore.jks -пароль доступа к хранилищу -пароль доступа к ключу -tsahttp://timestamp.comodoca.com/rfc3161 DeploymentRuleSet.jar testsign -J-Dhttp.proxyHost=xxx.xxx.COM -J-Dhttp.proxyPort=8080
-
Разместил 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
Это то, что сработало для меня