我想使用Java jarsigner工具的时间戳选项-tsa。我想到的时间戳服务需要身份验证。为此,您将获得个性化的软令牌,以在时间戳服务器上标识自己。
我的问题:jarsigner工具支持此身份验证吗?换句话说:jarsigner是否支持RFC 3161(时间戳协议)和RFC 2246(身份验证)?
jarsigner有一个选项-tsacert。该文档指出:
If"-tsacert alias" appears on the command line when signing a JAR file then a timestamp is generated for the signature. The alias identifies the TSA's public key certificate in the keystore that is currently in effect. The entry's certificate is examined for a Subject Information Access extension that contains a URL identifying the location of the TSA.
我感到困惑的是措辞"为签名生成了时间戳"。这是什么意思?另外,"别名标识TSA的公钥证书"一词也令人困惑:似乎它用于验证时间戳(因为它是公钥)而不标识请求者(因为它不是私钥)。
此外:我要签名的证书不是软令牌,而是存储在智能卡上。无法将其导出到密钥库。因此,我必须使用选项-keystore NONE -storetype PKCS11。我认为由于这个原因,选项-tsacert alias不能使用,因为它需要一个包含软件令牌的真实密钥库。
已签名的Jarfile有效性受用于签名的证书的有效性限制。
时间戳记只能说出jarfile何时签名。
要签署jarfile,必须使用pvtkey。
对于时间戳记,技术上不需要密钥,而只是密钥的哈希。
请参阅下面的链接以获取更多信息,
https://www.digistamp.com/technical/how-a-digital-time-stamp-works/
谢谢。
我想在提出问题时使用的时间戳服务器需要单独的证书,以对服务器进行客户端身份验证。 问题是关于此证书的,而不是用于签名jar文件的证书。