html keygen替代,在浏览器中生成密钥对

时间:2016-04-01 07:55:49

标签: javascript php codeigniter ssl encryption

我需要html标记keygen的替代方法,以便通过客户端证书进行身份验证。到目前为止,我只发现过时的js libs,比如不再维护的jcryption或pidCrypt。有没有办法在客户端上生成rsa密钥对,并将私钥存储在至少chrome,safari和firefox的浏览器密钥库中。

我知道node.js会做类似的事情,但是我有一个非常大的应用程序已经用php编写了代码编号,我不认为你只能实现一些加密库。另外据我所知,node.js有一个在服务器上使用openssl的c / c ++后端,因此它不会在客户端上生成。

我是SSL和客户端证书的新手,所以我很欣赏有关如何实施客户端证书的任何建议。

到目前为止,我已完成以下工作:

  1. 使用keygen标记(仍可在firefox中使用)生成密钥对。私钥存储在浏览器中。

  2. 使用公钥在服务器上使用openssl生成证书。

  3. 通过application / x-509-server-cert MIME类型在用户浏览器中实施cert。 (我已经读过,这也不会得到更长时间的支持)

  4. 有没有办法这样做,所以私钥不会离开客户端计算机,或者我应该只生成服务器上的所有内容,然后用密码加密,并将p12文件发送给用户并删除所有内容之后在服务器上?

    请帮忙!

2 个答案:

答案 0 :(得分:1)

最近,我在寻找类似的库,并找到了一个流行的库,用于相同的库,例如node-forge。该图书馆的每周下载量超过400万,并且已经存在7年了。此外,它已经定期更新,可以通过其版本发布进行检查。

答案 1 :(得分:0)

如果您已经有了基于<keygen>的设置并希望继续使用它,我创建了一个项目,该项目尝试为<keygen>实现JavaScript polyfill:

https://github.com/CyberShadow/keygen.js