我需要html标记keygen的替代方法,以便通过客户端证书进行身份验证。到目前为止,我只发现过时的js libs,比如不再维护的jcryption或pidCrypt。有没有办法在客户端上生成rsa密钥对,并将私钥存储在至少chrome,safari和firefox的浏览器密钥库中。
我知道node.js会做类似的事情,但是我有一个非常大的应用程序已经用php编写了代码编号,我不认为你只能实现一些加密库。另外据我所知,node.js有一个在服务器上使用openssl的c / c ++后端,因此它不会在客户端上生成。
我是SSL和客户端证书的新手,所以我很欣赏有关如何实施客户端证书的任何建议。
到目前为止,我已完成以下工作:
使用keygen标记(仍可在firefox中使用)生成密钥对。私钥存储在浏览器中。
使用公钥在服务器上使用openssl生成证书。
通过application / x-509-server-cert MIME类型在用户浏览器中实施cert。 (我已经读过,这也不会得到更长时间的支持)
有没有办法这样做,所以私钥不会离开客户端计算机,或者我应该只生成服务器上的所有内容,然后用密码加密,并将p12文件发送给用户并删除所有内容之后在服务器上?
请帮忙!
答案 0 :(得分:1)
最近,我在寻找类似的库,并找到了一个流行的库,用于相同的库,例如node-forge。该图书馆的每周下载量超过400万,并且已经存在7年了。此外,它已经定期更新,可以通过其版本发布进行检查。
答案 1 :(得分:0)
如果您已经有了基于<keygen>
的设置并希望继续使用它,我创建了一个项目,该项目尝试为<keygen>
实现JavaScript polyfill: