Подписание файлов JAR с помощью jarsigner - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь подписать и затем проверить файл JAR. Вот шаг, который я делаю:

  • Создание двух хранилищ ключей
keytool -genkey -alias KeyForJar -keystore qarelease.keystore  
keytool -genkey -alias KeyForJar2 -keystore qarelease.keystore2
  • Экспорт сертификатов
keytool -export -alias KeyForJar -file certfile.cer -keystore qarelease.keystore
keytool -export -alias KeyForJar2 -file certfile.cer2 -keystore qarelease.keystore2
  • Импорт сертификатов
keytool -import -alias QaPublicKey -file certfile.cer -keystore opsrelease.keystore
keytool -import -alias QaPublicKey2 -file certfile.cer2 -keystore opsrelease.keystore2
  • Подпись файла JAR

jarsigner -keystore ./qarelease.keystore core-1.1.1-SNAPSHOT.jar KeyForJar

  • Проверка подписи JAR
jarsigner -verify -keystore ./opsrelease.keystore core-1.1.1-SNAPSHOT.jar QaPublicKey
  • Проверьте JAR с неверным сертификатом
jarsigner -verify -keystore ./opsrelease.keystore2 core-1.1.1-SNAPSHOT.jar QaPublicKey2

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

jar verified.

Warning:
This jar contains entries whose certificate chain is invalid. Reason: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
This jar contains signed entries that are not signed by alias in this keystore.
This jar contains entries whose signer certificate is self-signed.
This jar contains entries whose signer certificate will expire within six months.
This jar contains signatures that do not include a timestamp. Without a timestamp, users may not be able to validate this jar after any of the signer certificates expire (as early as 2020-04-15).

Я предполагаю, что мои параметры проверки не переданы должным образом или, возможно, у меня неправильно сгенерированы ключи. Пожалуйста, помогите понять, как подписать и проверить файл. Спасибо.

...