7

这是我想做的事情:

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

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

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

PS不太确定标签是否正确,但不知道该放哪个。

4

1 回答 1

6

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

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

在此处输入图像描述

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

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

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

于 2012-05-18T16:51:15.893 回答