使用浏览器&x27;s证书(私钥)在javascript中对某些字符串进行签名

使用浏览器&x27;s证书(私钥)在javascript中对某些字符串进行签名,javascript,ssl,certificate,client-certificates,Javascript,Ssl,Certificate,Client Certificates,我的用户的web浏览器中安装了一些证书(私钥)。浏览器使用这些证书对某些第三方网站上的用户进行身份验证 当用户使用/访问我的网站时,我想使用其中一个私钥对某个字符串进行签名。是否有任何JavaScript API或函数可以实现这一点?简而言之,您不能使用Java脚本和最终用户的客户端证书对通过web浏览器交付的字符串进行签名 在您的情况下,用户证书和密钥用于TLS客户端身份验证: 在TLS握手期间,服务器将请求浏览器提供TLS客户端证书 浏览器将选择合适的客户端证书并建立TLS连接 一旦完成,

我的用户的web浏览器中安装了一些证书(私钥)。浏览器使用这些证书对某些第三方网站上的用户进行身份验证


当用户使用/访问我的网站时,我想使用其中一个私钥对某个字符串进行签名。是否有任何JavaScript API或函数可以实现这一点?

简而言之,您不能使用Java脚本和最终用户的客户端证书对通过web浏览器交付的字符串进行签名

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

  • 在TLS握手期间,服务器将请求浏览器提供TLS客户端证书
  • 浏览器将选择合适的客户端证书并建立TLS连接
  • 一旦完成,服务器将提供内容:HTML、JS、图像
  • 浏览器将呈现包含所有元素的页面

浏览器有一个API来访问客户端证书和密钥,但Java脚本引擎不提供该API。

否,windows中的证书存储不是系统范围的。IE将使用系统商店,但其他浏览器不会。我用IE和Chrome进行了测试,两者都可以看到相同的证书。FireFox对我来说并不重要,无论商店是否是全系统的,所以我已经删除了问题的一部分。