2016-04-21 35 views
0

我的用户在其Web浏览器中安装了一些证书(私钥)。浏览器使用这些证书在某些第三方网站上对用户进行身份验证。使用浏览器的证书(私钥)在javascript中签署一些字符串

我想标志使用私钥之一一些字符串,当用户使用/访问我的网站。是否有任何JavaScript API或函数可以执行此操作?

+0

不,证书商店不在Windows系统范围内。 IE将使用系统存储,但其他浏览器不会。 –

+1

我对IE和Chrome进行了测试,两者都可以看到相同的证书。 FireFox不会 –

+0

无论如何,如果商店是全系统商店,那对我来说并不重要,因此我已经删除了我的问题的一部分。 –

回答

0

简而言之,您无法使用Java脚本和最终用户的客户端证书对通过Web浏览器传递的字符串进行签名。

在你的情况下,用户证书和密钥用于TLS客户端身份验证:TLS握手

  • 在服务器将请求提交TLS客户端证书的浏览器。
  • 浏览器将选择合适的客户端证书并建立TLS连接。
  • 完成后,服务器将传递内容:HTML,JS,Images ...
  • 浏览器将呈现包含所有元素的页面。

浏览器有一个API来访问客户端证书和密钥,但是这不会暴露给Java脚本引擎。