使用用户签名在服务器文档上签名PDF

Nik*_*ola 6 php java signing digital-signature

这是我想要做的:

  1. 用户创建文档(html)
  2. 编辑 - >在服务器上保存PDF
  3. 询问用户是否要签署文件
    • (是)这是问题所在
    • (没有)没问题
  4. ???? (不重要)

所以现在我面临的问题是如何在步骤3中执行此操作(是).如果签名在服务器上没有问题,我有一些html-> php-> pdf类可以使用数字签名进行签名但签名必须是在服务器上作为文件.问题是,我怎样才能直接在服务器上进行.用户选择是,读取签名(从他的计算机上的读者)并发送到服务器并完成签名.在这里,我相信如果没有像Java这样的东西,我就无法做到.在我看来,PHP和JavaScript肯定对于这个动作来说还不够.

有没有人遇到过这样的问题?也许一些准备使用的库?

PS不太确定标签是否正确,但无法弄清楚要放哪个.

Eug*_*its 6

如果具有私钥的证书位于客户端上,则需要客户端模块进行签名.JavaScript是不够的,因为它无法访问客户端上的密钥.虽然您可以尝试从JavaScript调用CAPICOM,但这是部分(没有PKCS#11支持),Windows特定和过时的解决方案.更好的选择是使用Java编写的浏览器小程序将执行签名(见下文).

我们的SecureBlackbox产品有一个分布式签名附加组件,它完全符合您的描述(目前支持PHP,Java,ASP.NET和编译模块).您可以看到该方案加载项的工作原理:

在此输入图像描述

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

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

将完整文档传输到客户端并使用我们的SecureBlackbox的iText或Java版本签署该文档的Java小程序可能会更容易,然后将文档上传回服务器.