Eugene Mayev..
6
如果具有私钥的证书位于客户端上,则需要客户端模块进行签名.JavaScript是不够的,因为它无法访问客户端上的密钥.虽然您可以尝试从JavaScript调用CAPICOM,但这是部分(没有PKCS#11支持),Windows特定和过时的解决方案.更好的选择是使用Java编写的浏览器小程序将执行签名(见下文).
我们的SecureBlackbox产品有一个分布式签名附加组件,它完全符合您的描述(目前支持PHP,Java,ASP.NET和编译模块).您可以看到该方案加载项的工作原理:
在我们的产品中,我们提供预构建的浏览器模块 - Java Applet,ActiveX控件和Flash applet,但Java applet在大多数情况下都足够,因为它可以访问Windows上的PKCS#11存储和Windows证书存储.对于不支持Java applet的浏览器,SecureBlackbox允许通过Java Web Start使用applet作为外部"应用程序".
您可能需要重新创建这个完整的方案,但是计算服务器上的哈希并将其传递给客户端进行签名然后将签名重新嵌入到文档中是一个很大的技巧.
将完整文档传输到客户端并使用我们的SecureBlackbox的iText或Java版本签署该文档的Java小程序可能会更容易,然后将文档上传回服务器.