Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以在浏览器中生成SSL证书?_Javascript_Ssl - Fatal编程技术网

Javascript 是否可以在浏览器中生成SSL证书?

Javascript 是否可以在浏览器中生成SSL证书?,javascript,ssl,Javascript,Ssl,对于管理接口,我们希望使用SSL实现客户端身份验证。其思想是,在注册过程中,每个用户都会生成一个SSL证书,该证书在浏览器中注册并用于向服务器验证客户端。私钥永远不要离开客户端,这一点很重要。因此,在服务器上生成证书并将其发送到客户端并不是解决方案 是否可以使用JavaScript在浏览器(如IE 9+、Firefox 12+、Chrome)中生成SSL证书?可以注册证书吗?您不能在浏览器中真正生成证书,但可以在浏览器中生成证书请求(或等效证书):密钥对在浏览器中生成,私钥永远不会离开它 (请注

对于管理接口,我们希望使用SSL实现客户端身份验证。其思想是,在注册过程中,每个用户都会生成一个SSL证书,该证书在浏览器中注册并用于向服务器验证客户端。私钥永远不要离开客户端,这一点很重要。因此,在服务器上生成证书并将其发送到客户端并不是解决方案


是否可以使用JavaScript在浏览器(如IE 9+、Firefox 12+、Chrome)中生成SSL证书?可以注册证书吗?

您不能在浏览器中真正生成证书,但可以在浏览器中生成证书请求(或等效证书):密钥对在浏览器中生成,私钥永远不会离开它

(请注意,如果您直接在浏览器中生成证书,它最多只能是自签名的,因为CA不会给您私钥。这就是为什么您只需要一个证书请求,因为生成自签名证书的需求很少。不过,我认为Firefox扩展可以做到这一点。)

证书请求被发送到服务器,但格式取决于浏览器和使用的方法。您在服务器端得到的是公钥,这取决于您实现的服务将其转换为证书(当然,除非您使用现有服务)。您可以在中找到有关此的更多详细信息


一旦在服务器上生成证书,就可以将其重新导入并与私钥关联。

我很确定您可以生成SSL证书,但我怀疑您是否能够注册它。我以前在金融网站上见过这样做。但它更像是安装ActiveX或运行应用程序,它将生成请求、证书并将其安装到个人证书存储中。它还能够防止它在计算机或配置文件之间导出。如何,我不确定。您是否试图在注册过程中动态生成它?除非用户安装了类似OpenSSL的东西,否则我认为你不能。在可行性方面,肯定有一些网站通过浏览器生成客户端证书,但我看到的一个实现是在VBScript(哦,上帝)中,显然只在IE中工作。@brianary你能提供证据吗?StartSSL.com可能提供了免费证书,但这并不意味着证书本身是在浏览器中生成的。你怎么知道它没有向服务器发出从浏览器中返回证书的请求?这是我在2014年在Firefox中报告的错误,看起来我误读了你回复的细节。很抱歉。@brianary是的,在2012年,web crypto API没有现在那么发达,您无法在浏览器中生成证书。您只能生成CSR,将其发送到服务器,然后通过使用其私钥对其进行签名,从生成证书的服务器获取证书。新的加密API确实可以在浏览器中生成证书,因为使用发送到浏览器的私钥(从安全角度来看)对证书进行签名几乎没有意义。