在学校里,我需要签名一个罐子,并获得了以下教程https://docs.oracle.com/javase/tutorial/security/toolsign/。
因此,我首先制作并编译一个打印“ Hello World!”的简单程序。并使用以下命令将其放入罐子中:
jar cvfm Hello.jar Hello.class MANIFEST.M
此后,我使用以下命令生成密钥,无论它是自签名的,都没关系。
keytool -genkey -alias indy -keystore indystore
生成密钥后,我使用以下命令对jar进行签名
jarsigner -tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp -keystore indystore -signedjar SignedHello.jar Hello.jar indy
现在,当我想验证签名的jar时,出现多个错误,我也不知道为什么。如果重要的话,我正在使用acceptopenopenjdk 11。
jarsigner -verify -keystore indystore SignedHello.jar
我得到的错误:
- 此jar包含证书链无效的条目。
原因:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到到请求目标的有效证书路径
- 此jar包含其签名者证书是自签名的条目。
带警告的详细输出如下所示: