【发布时间】:2012-02-08 16:32:51
【问题描述】:
是否可以在浏览器中请求生成客户端密钥对并将公钥发送到服务器 CA 以进行透明签名?然后在用户的浏览器中安装签名证书?
场景:
- 用户打开https://examle.com/网页,验证服务器身份
- 用户请求创建帐户
- 密钥对在用户浏览器中生成,不会向服务器/CA 透露
- 公钥被发送到服务器进行签名
- 服务器签署密钥并生成证书
- 证书与私钥一起发送到客户端并安装在浏览器中
客户端下次连接服务器时,根据客户端证书验证其身份。
如果服务器可以强制/提示客户端使用密码加密来保护他的私钥,那就太好了。
我看到网上银行使用 java 小程序来完成这项任务。是否可以使用本机浏览器功能来做到这一点?欢迎使用 Apache/PHP 或 Node.js 解决方案。
【问题讨论】:
标签: ssl ssl-certificate client-side