Ответ 1
Вот решение:
jarsigner -keystore mykeystore -digestalg SHA1 jarfile alias
Чтобы проверить:
jarsigner -verify -verbose -certs jarfile
Я пытаюсь проверить подпись Jar:
jarsigner -verify -verbose -certs example.jar
У меня возникла следующая проблема:
jarsigner: java.lang.SecurityException: invalid SHA1 signature file digest for o
rg/apache/log4j/net/DefaultEvaluator.class
У меня появилось несколько предложений об использовании -digestalg SHA-1
, но я не знаю, где я должен был бы поместить это утверждение!
Надеюсь, вы поможете мне решить проблему.
Вот решение:
jarsigner -keystore mykeystore -digestalg SHA1 jarfile alias
Чтобы проверить:
jarsigner -verify -verbose -certs jarfile
Эта ошибка может также произойти, когда банка подписана дважды.
Решение заключалось в том, чтобы "unsign" jar удалил файлы *. SF, *. DSA, *. RSA из банки META-INF, а затем снова подпишите банку.
Это сработало для меня. Мне пришлось изменить мой ANT на версию 1.8.3 и добавить атрибут DIGESTALG:
<!-- VLS2014 ADDED digestalg="SHA1" -->
<signjar keystore="${security.keystore}"
storepass="${security.storepass}"
keypass="${security.keypass}"
alias="${security.alias}"
jar="${basedir}/temp/tj/${justfname}"
signedjar="${real.signed.jar}"
digestalg="SHA1"
/>
<delete file="${basedir}/temp/tj/${justfname}" />
</target>