当我尝试自签名时,如下所示。
jarsigner -keystore my keystore myjar.jar myalias
它给出如下警告:
没有提供-tsa或-
tsacert,并且这个jar没有时间戳记。如果没有时间戳,则用户可能无法在签署者证书的到期日期(2014-05-08)或以后的任何吊销日期之后验证此jar。
请帮助解决问题。
最近的Java 7提供了(礼貌吗?)关于已经存在十年的警告。
Trusted Timestamping在Java 5(2004)中引入。这样做的动机是当证书过期时,不会强迫开发人员“每年重新签名已部署的JAR文件”。
→ http://docs.oracle.com/javase/1.5.0/docs/guide/security/time-of-
signing.html
通常,颁发证书的证书颁发机构(CA)提供基于URL的时间戳颁发机构(TSA) ,以与 CA颁发的 证书相同 。例如,digicert tsa
url可以按以下方式访问:
jarsigner -tsa http://timestamp.digicert.com [.. other options]
→ http://www.digicert.com/code-signing/java-code-signing-
guide.htm
具有自签名证书的时间戳 可能是 一个难以实现的目标,因为(1)TSA时间戳需要是一个受信任的独立交易(排除“自我时间戳”),并且(2)设置了典型的TSA
URL以与之配合使用由同一CA组织提供的证书(即TSA URL不处理自签名证书)
更新:
尝试给带有自签名证书的时间戳记的URL:
-tsa http://sha256timestamp.ws.symantec.com/sha256/timestamp
根据brad-turek的评论)对于专用网络,可以考虑使用内部时间戳记授权机构,例如Thales(nCipher)时间戳服务器(或以前称为OpenTSA)
我能够使用PDFBox1.8.5对PDF文档进行数字签名,多亏了PDFBOX中提供的这个出色的示例。 https://github.com/apache/pdfbox/blob/1.8/examples/src/main/java/org/apache/pdfbox/examples/signature/createSignature.java 签名此示例时,请使用本地计算机的日期/时间(第175
我已经通过TSA创建了带有时间戳的数字签名。在本文中,我在TSA响应中为building chain添加了证书,用于building chain。这很好,而且还创建了签名,但在使用pdf box API for Java将此签名嵌入pdf时,它给错误提供的空间不足,无法写入签名。PDF框中是否有可用于处理签名大小的配置? 任何帮助都将不胜感激。
我在使用可信时间戳创建Bouncy Castle的有效CMS签名时遇到了问题。签名创建工作正常(我想将签名包含到PDF文件中),签名是有效的。但是在我将可信时间戳包含到签名的无符号属性表后,签名仍然有效,但是读者报告签名包括嵌入的时间戳,但它是无效的。这让我相信,哈希I时间戳不是正确的,但我似乎无法弄清楚它的问题。 签署代码: 代码: : 谢谢你的帮助! 示例文件: 签名PDF 未签名的PDF 用
我尝试使用外部Web服务对pdf进行数字签名。此Web服务包含用户证书,用户可以使用他们的凭据和一次性密码生成的代码访问该证书。 旁注:web服务应该期望pdf摘要(哈希),但奇怪的是,它却接受整个文件。 无论如何,实现如下: pdf已成功签名,但使用Adobe Reader并检查签名字段时,似乎缺少可信时间戳,如图所示: 看起来,来自远程服务的响应是一个签名对象,我只需要将其嵌入到PDF文件中。
问题内容: 我在使用受信任的时间戳与Bouncy Castle创建有效的CMS签名时遇到问题。签名创建工作良好(我想将签名包括到PDF文件中),签名有效。但是,当我在签名的未签名属性表中添加可信时间戳后,签名仍然保持有效,但是Reader会报告 该签名包括嵌入式时间戳,但是无效 。这使我相信,哈希时间戳是不正确的,但是我似乎无法弄清楚问题出在哪里。 签名代码: 该代码: : 谢谢你的帮助! 示例文
我四处寻找,但没有找到一个明确的例子。我想以编程方式(C#)创建一个自签名(自)信任的证书,执行以下步骤: 步骤1: 即时创建根CA证书并将其添加到“受信任的根证书颁发机构”文件夹中的证书存储中 我做到了(参见下面的代码-步骤1)。如何完成第2步?目标计算机是Windows XP/7。 我尝试了纯.NET方法和Bouncy Castle库。