jar签名

给jar包签名, 目前还没用

准备环境

安装 jdk 将其 bin 目录加入到系统环境变量

生成密钥

keytool 生成 keystore

1
keytool -genkey -alias BorberKey -keyalg RSA -validity 365 -keystore borber.keystore 

log:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  Borber
  [Unknown]:  VastData
您的组织名称是什么?
  [Unknown]:  VastData
您所在的城市或区域名称是什么?
  [Unknown]:  广东省广州市
您所在的省/市/自治区名称是什么?
  [Unknown]:  ^Z该单位的双字母国家/地区代码是什么?
  [Unknown]:
PS D:\data\key> keytool -genkey -alias BorberKey -keyalg RSA -validity 365 -keystore borber.keystore
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  Borber
您的组织单位名称是什么?
  [Unknown]:  VastData
您的组织名称是什么?
  [Unknown]:  VastData
您所在的城市或区域名称是什么?
  [Unknown]:  广州市
您所在的省/市/自治区名称是什么?
  [Unknown]:  广东省
该单位的双字母国家/地区代码是什么?
  [Unknown]:  CN
CN=Borber, OU=VastData, O=VastData, L=广州市, ST=广东省, C=CN是否正确?
  []:  是

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 365):
CN=Borber, OU=VastData, O=VastData, L=广州市, ST=广东省, C=CN

导出证书:

1
keytool -export -alias BorberKey -file borber.cer -keystore .\borber.keystore

签名Jar包

1
jarsigner -keystore .\borber.keystore -signedjar .\test-sigined.jar .\test.jar BorberKey 

log:

1
2
3
4
5
输入密钥库的密码短语:
jar 已签名。

警告:
签名者证书为自签名证书。

验证

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
jarsigner -verify .\test-sigined.jar 

jar 已验证。

警告:
此 jar 包含其证书链无效的条目。原因: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
此 jar 包含其签名者证书为自签名证书的条目。
此 jar 包含的签名没有时间戳。如果没有时间戳, 则在其中任一签名者证书到期 (最早为 2023-07-26) 之后, 用户可能无法验证此 jar。

有关详细信息, 请使用 -verbose 和 -certs 选项重新运行。

附: 时间戳版本

1
jarsigner -tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp -keystore .\borber.keystore -signedjar .\test-sigined.jar .\test.jar BorberKey
updatedupdated2022-07-262022-07-26
更新