是否可以检索/解析$_SERVER['SSL_CLIENT_CERT']的信息并使用Tcpdf的setSignature()签署PDF?
在我们的网络应用程序中,有必要即时创建pdf并使用客户端证书对其进行签名。
提前致谢!
答案 0 :(得分:3)
SSL_CLIENT_CERT
只有公钥,因此您无法以这种方式签署任何内容。
要使用X.509证书进行签名,您必须能够访问其私钥。这意味着只有证书的所有者才能使用可以访问私钥的软件对任何内容进行签名。因此,使用用户证书的服务器无法签名。使用公钥,您只能加密数据。
不幸的是,由于Java applet今天基本上无法使用,因此您很难在浏览器中使用它。也许PKI.js会有所帮助,但我不知道它是否适用于硬件令牌(PKCS#11)。
最近我的任务是提出类似问题的解决方案,并且我在托盘中制作了一个桌面应用程序(仅适用于Windows,使用.NET SecureBlackbox library),定期轮询服务器以便签署文档,提取它们,签名并返回签名到服务器。