为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

拉莫斯之舞 2019-11-19 15:33:52

这是我想做的:

  1. 用户创建文档(html)

  2. 编辑->在服务器上保存PDF

  3. 询问用户是否要签署文件

    • (是)这是问题所在

    • (没有)没问题

  4. ???? (不重要)

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

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

PS不太确定这些标签是否正确,但无法确定该放置哪个标签。


查看完整描述

2 回答

?
慕用2447696

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


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


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


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


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


查看完整回答
反对 回复 2019-11-19
?
白板的微信

流程图很好地表示了浏览器的签名过程,较旧的方法是Java applet,Active X等,它们已被淘汰或正从新的Modern Browser产品中淘汰。


https://www.java.com/en/download/faq/chrome.xml


用于Web浏览器的Java插件依赖于跨平台插件体系结构NPAPI,十年来,所有主流Web浏览器都一直支持该框架。Google的Chrome版本45及更高版本已放弃了对NPAPI的支持,因此Java插件不再适用于这些浏览器。


我来晚了,但是写这篇文章希望答案对仍在寻找浏览器扩展以从USB令牌和MODERN浏览器签名PDF的人有所帮助。


请参考我在此stackoverflow帖子中的答案,以检查JavaScript和Signer.Digital Browser扩展用法。


Signer的 Java或.NET数字签名组件。可以使用Digital或任何提供程序对浏览器USB令牌进行PDF数字签名。


对于PHP,可以通过Apache代理通过在Tomcat上运行的JavaBridge使用Java组件,以从浏览器USB令牌和服务器端的PHP对PDF进行数字签名。


希望这可以帮助!


查看完整回答
反对 回复 2019-11-19

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信