在欧盟和美国(以及我的国家),有法律规定数字签名(由政府和政府批准的CA颁发的客户证书)具有法律约束力。
目前,我有一个网络表单 - 相当于纸质表单 - 用户提交个人信息。我使用该数据生成PDF,他们通过邮件下载,打印,签名并邮寄给我们。至少可以说不是最佳的。
我的大多数目标用户已经拥有这些客户端证书(网上银行和税务),因此我希望能够使用这些证书的用户签署PDF,从而使其合法招标并节省他们到邮局的旅行
如何使用客户端证书对PDF进行签名,考虑到必须使用私钥完成,并且客户端仅将公钥发送到服务器。 显然这必须在客户端完成,但不是Javascript,因为它无法访问证书(Java,Flash,ActiveX do)。 我已经找到了一堆专有解决方案,但不是免费软件/开源。
webapp是用PHP(Symfony2)和Javascript编写的,在使用nginx和php-fpm的Ubuntu服务器上运行。
关于如何在不重新发明轮子的情况下解决这个问题的任何建议?有没有人知道这样做的免费/开放图书馆/小程序?
一些链接:
Digitally sign a PDF on the server (2011年,asp.net,一个答案解释基本流程)
Web application to sign PDF documents with digital certificates released by CAs (2011年,类似问题)