我有几个签名的jar文件。我能够使用 jarsigner 验证签名。如何找到 jar 文件的发布者?我想检查 jar 文件是否由适当的受信任证书签名。
简短回答:使用jarsigner -verify -verbose -certs some.jar
.
-verbose
和-certs
,jarsigner -verify
的输出将包括在JAR文件中找到的每个签名者的证书信息。 如果使用了 X509 证书,则该信息包括签名者的可分辨名称信息。
以下是手册页中的一些示例输出:
jarsigner -keystore /working/mystore -verify -verbose -certs myTest.jar
198 Fri Sep 26 16:14:06 PDT 1997 META-INF/MANIFEST.MF
199 Fri Sep 26 16:22:10 PDT 1997 META-INF/JANE.SF
1013 Fri Sep 26 16:22:10 PDT 1997 META-INF/JANE.DSA
208 Fri Sep 26 16:23:30 PDT 1997 META-INF/JAVATEST.SF
1087 Fri Sep 26 16:23:30 PDT 1997 META-INF/JAVATEST.DSA
smk 2752 Fri Sep 26 16:12:30 PDT 1997 Tst.class
X.509, CN=Test Group, OU=Java Software, O=Oracle, L=CUP, S=CA, C=US (javatest)
X.509, CN=Jane Smith, OU=Java Software, O=Oracle, L=cup, S=ca, C=us (jane)
s = signature was verified
m = entry is listed in manifest
k = at least one certificate was found in keystore
jar verified.
当然,签名机构的"适当性"只能由人来判断。