Я пытаюсь подписать и затем проверить файл 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
jarsigner -keystore ./qarelease.keystore core-1.1.1-SNAPSHOT.jar KeyForJar
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).
Я предполагаю, что мои параметры проверки не переданы должным образом или, возможно, у меня неправильно сгенерированы ключи. Пожалуйста, помогите понять, как подписать и проверить файл. Спасибо.