Как использовать предоставленное хранилище ключей для подписи файла jar

Мой клиент предоставил мне хранилище ключей для подписания файла jar апплета Java. Я экспортировал из него файл .cer, а затем импортировал его в cacerts, но я продолжаю получать сообщение об ошибке «Цепочка сертификатов не найдена». В нем также говорится, что «псевдоним должен ссылаться на действительную запись ключа KeyStore, содержащую закрытый ключ и соответствующую цепочку сертификатов открытого ключа».

Я попробовал предложение Гастона ниже, оно было следующим:

jarsigner -keystore "D:\My Documents\keystore\MyKeyStore.jks" -storepass mypass -signedjar my_signed_jar.jar" unsigned.jar myalias

Warning:
The signer's certificate chain is not validated.

person user1777295    schedule 26.10.2012    source источник


Ответы (3)


Вся ситуация недействительна.

  1. Вы должны подписывать JAR-файлы своим закрытым ключом, а не чьим-то еще.

  2. Ваш клиент совершил КРУПНОЕ нарушение безопасности, выдав свой закрытый ключ.

  3. Проблема, которую вы упомянули о непроверенной цепочке сертификатов подписывающей стороны, полностью связана с проблемой клиента. Он предоставил сертификат: его действительность полностью зависит от него.

Не ваша проблема, но и не настоящая проблема, так как вся ситуация недействительна. Вы должны подписывать свой собственный код своим собственным сертификатом.

person user207421    schedule 26.10.2012

Если вы просто хотите подписать банку из хранилища ключей, вы должны запустить в командной строке следующее:

%JAVA_HOME%\bin\jarsigner -keystore YOUR_KEY_STORE.ks -storepass KS_PASS YOUR_JAR KS_ALIAS

Я надеюсь, что это будет полезно.

person Gaston Flores    schedule 26.10.2012
comment
Спасибо за ответ! Я попробовал это, и это было результатом: jarsigner -keystore D:\My Documents\keystore\ProvidedKeyStore.jks -storepass mypass -signedjar my_signed_jar.jar unsigned.jar myalias Предупреждение: цепочка сертификатов подписавшего не проверена. - person user1777295; 26.10.2012
comment
Если вы используете JDK 7, попробуйте сейчас с версией JDK 6 (также попробуйте с 32- и 64-битной версиями). - person Gaston Flores; 26.10.2012

Я экспортировал из него файл .cer, а затем импортировал его в cacerts, но я продолжаю получать сообщение об ошибке «Цепочка сертификатов не найдена».

Конечно, цепочка не будет найдена :) Вы не должны экспортировать ее, потому что для подписания jar вам нужно использовать исходный ключ хранилища ключей - ключ, из которого был сгенерирован сертификат...

Если у вас есть все привилегии в качестве паролей и т. д., вы должны использовать исходный ключ хранилища ключей, который клиент дал вам для подписи jar. Затем вы должны использовать общие команды jarsigner, например

jarsigner -keystore C:\working\mystore -storepass myspass
      -keypass dukekeypasswd MyJarFile.jar duke

P.S>

Пожалуйста, сообщите, если это поможет

person user592704    schedule 27.10.2012