2

TL;博士

  • 有在线表格
  • 提交时生成 PDF
  • 问题:如何在浏览器中使用客户端证书对 PDF 进行数字签名?

背景

在欧盟和美国(以及我的国家),法律规定数字签名(由政府和政府批准的 CA 颁发的客户证书执行)具有法律约束力。

目前我有一个网络表单——相当于纸质表单——用户可以在其中提交他们的个人信息。我使用这些数据生成 PDF,他们下载、打印、签名并通过邮件邮寄给我们。至少可以说不是最佳的。

我的大多数目标用户已经拥有这些客户证书(网上银行和税收),所以我希望让拥有这些证书的用户能够签署 PDF,从而使其合法投标并节省他们去邮局的时间。

问题

如何使用客户端证书签署 PDF,考虑到这必须使用私钥完成,并且客户端仅将公钥发送到服务器。显然,这必须在客户端完成,但不是 Javascript,因为它无法访问证书(Java、Flash、ActiveX 可以)。我为此找到了一堆专有解决方案,但不是免费软件/开源。

webapp 是用 PHP(Symfony2) 和 Javascript 编写的,在带有 nginx 和 php-fpm 的 Ubuntu 服务器上运行。

关于如何在不重新发明轮子的情况下解决这个问题的任何建议?有谁知道可以做到这一点的免费/开放图书馆/小程序?


一些链接:

在服务器上对 PDF 进行数字签名 (2011,asp.net,一个答案解释了基本流程)

使用 CA 发布的数字证书签署 PDF 文档的 Web 应用程序 (2011,类似问题)

4

0 回答 0