当前位置: 首页 > 知识库问答 >
问题:

使用来自用户的签名对服务器文档上的PDF进行签名

余阳秋
2023-03-14

下面是我想做的:

  • 用户创建文档(html)
  • 编辑->在服务器上保存PDF
  • 询问用户是否要签署文档
    • (是)这是问题
    • (否)无问题

    所以现在我面临的问题是如何在步骤3中做到这一点(是的)。如果签名在服务器上没有问题,我有一些HTML->PHP->PDF类可以用数字签名进行签名,但签名必须作为文件在服务器上。问题是,我怎么能直接在服务器上做。用户选择是,签名被读取(从他的计算机上的阅读器)并发送到服务器,签名就完成了。在这里我相信没有类似Java之类的东西我是做不到的。在我看来,PHP和JavaScript肯定是不够的。

    有人遇到过那样的问题吗?也许一些准备好使用图书馆?

共有1个答案

丁经略
2023-03-14

如果带有私钥的证书在客户端上,那么您需要一个客户端模块来执行签名。JavaScript是不够的,因为它不能访问客户端上的密钥。虽然您可以尝试从JavaScript调用CAPICOM,但这是一个部分的(没有PKCS#11支持)、特定于Windows且过时的解决方案。更好的选择是用Java编写一个执行签名的浏览器applet(见下文)。

我们的SecureBlackbox产品有一个分布式签名插件,它与您描述的完全一样(目前支持PHP、Java、ASP.NET和编译的模块)。您可以查看加载项的工作方式:

在我们的产品中,我们提供了预构建的浏览器模块--Java Applet,ActiveX控件和Flash Applet,然而Java Applet在大多数情况下是足够的,因为它可以访问Windows上的PKCS#11存储和Windows证书存储。对于不支持Java applet的浏览器,SecureBlackbox允许通过Java Web Start使用applet作为外部“应用程序”。

您可能需要重新创建这个完整的方案,但是,在服务器上计算散列并将其传递给客户端进行签名,然后将签名嵌入到文档中,这是一个很大的技巧。

将完整的文档传输到客户端,并使用Java applet使用iText或我们的SecureBlackbox的Java版本对文档进行签名,然后将文档上载回服务器,可能会更容易。

 类似资料:
  • 我有一个pdf文件,需要数字签名,签名是由外部服务提供。在启动签名之前,我没有证书链。我尝试了下面的代码,但是得到了Sigdict/Contents非法的数据消息。 创建文档哈希并将其发布到外部服务以对其进行签名的源 方法getPKCS7DataFromDigitalSignatureResponse(responseXML)用于解析外部服务响应,它将PKCS7作为字符串返回。我试图找出问题的根源

  • 您好,我可以使用iText 5对PDF文档进行数字签名。我需要再次签署PDF,而在验证PDF时,它表明初始签名无效。您可以在此处查看再次签名的文件。 请参见下面用于标记的代码, 请让我知道出了什么问题。

  • 我正在尝试用DSS签署PDF文档,我的问题是我无法在服务器a中计算文档的哈希值,然后在服务器B中签署它。 知道服务器A包含PDF文档,我们在服务器B中检索用于签名的证书 我的问题是如何在不需要证书的情况下计算服务器a中文档的哈希值。然后在服务器B上发送签名? 更新: ******散列的准备和计算******** ******散列签名******** ********PDF错误:*********

  • 请原谅我!我在爪哇很穷。 我错在哪里请指正,差在哪里请改进! 我正尝试使用PDFBox对动态创建的pdf进行数字签名,并使用以下程序: 程序中的任务: (i)创建模板PDF (ii)更新ByteRange、xref、startxref (iii)构造用于签名创建的原始文档 (iv)创建分离式信封数字签名 (v)通过连接原始文档第一部分、分离式签名和原始PDF第二部分来构造数字签名的PDF文档 观察

  • 我检查了Stackoverflow上的其他类似问题,但它在我的案例中不起作用。 情境:我正在开发一个需要签署pdf文档的应用程序。签名密钥由另一家公司持有,假设它是Companya。 我做了以下几个步骤: null 然后,将消息摘要发送给CompanyA进行签名。在我从CompanyA获得签名的摘要(它是base64编码的)之后,我调用方法来获得签名的pdf文档。 最后我可以得到签名的pdf文档,

  • 首先,虽然我关注StackOverflow已经有相当一段时间了,但这是我第一次发布一些东西,所以如果我做错了或者不按规则做的话,请随时为我指出正确的方向。 我正在开发一个PDF数字签名应用程序,使用iText5,它依赖于一个外部服务,在我准备好PDF签名后提供一个签名哈希。 如iText文档中所述,在第一阶段,我准备了PDF(在最终实现中,所有PDF都可能是多签名的,因此我使用追加模式),如下所示