对于管理界面,我们希望使用SSL实现客户端身份验证。这个想法是在注册过程中每个用户都生成一个SSL证书,该证书在浏览器中注册并用于向服务器验证客户端。私钥永远不会离开客户端很重要。因此,在服务器上生成证书并将其发送到客户端是没有办法的。
是否可以使用JavaScript在浏览器(例如IE 9 +,Firefox 12 +,Chrome)中生成SSL证书?是否可以注册证书?
答案 0 :(得分:4)
您无法在浏览器中真正生成证书,但您可以在浏览器中生成证书请求(或等效文件):生成密钥对在浏览器中,私钥永远不会离开它。
(请注意,如果您直接在浏览器中生成证书,它最多只能进行自签名,因为CA不会为您提供私钥。这就是为什么您只能获得证书请求,因为生成自签名证书的需求很少。我认为可以使用Firefox扩展。)
证书请求被发送到服务器,但格式取决于浏览器和使用的方法。您在服务器端获得的是公钥,它取决于您实现的将其转换为证书的服务(当然,除非您使用现有服务)。您可以在this answer。
中找到有关此内容的更多详细信息在服务器上生成证书后,可以将其重新导回以与私钥相关联。