首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从浏览器(CAPICOM alternative)用证书的私钥对文档进行签名?

如何从浏览器(CAPICOM alternative)用证书的私钥对文档进行签名?
EN

Stack Overflow用户
提问于 2016-11-08 22:21:56
回答 2查看 2K关注 0票数 2

因此,直到Windows7还存在一个微软ActiveX组件: CAPICOM,它可以从Javascript调用,然后显示客户端机器上证书存储的内容。然后,客户端可以选择适当的证书,并使用证书的私钥对某些文档进行签名。在Javascript中,对证书存储的访问就是这样的:

代码语言:javascript
复制
var MyStore = new ActiveXObject("CAPICOM.Store");
var oCertificates = new ActiveXObject("CAPICOM.Certificates");
// attempt to open the personal certificate store   
MyStore.Open(CAPICOM_CURRENT_USER_STORE, "My", CAPICOM_STORE_OPEN_READ_ONLY);

现在使用CAPICOM的替代方法是什么?我希望客户端能够在浏览器中用他的私钥签名一些文本,然后将带有公钥的签名文本发送到服务器。还可能吗?

也许我可以用Java或Silverlight代替纯JavaScript?那么PKI.js和类似的呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-09 07:11:17

一般来说,由于缺乏对Java或silverlight浏览器的支持,目前是不可能的

Chrome已经放弃对NPAPI插件的支持。火狐已经宣布将在2017年停止使用,Edge没有支持。微软已经反对Silverlight,而Oracle也宣布不再支持Java浏览器插件。只有旧版本的IE可以使用。

Javascript密码库(如PKI.js锻造或内置WebCryptographyApi )可用于执行数字签名,但它们无法访问操作系统KeyStore,因此无法访问已安装的证书。

替代办法(不太令人鼓舞):

  • 在浏览器中使用WebCryptographyApi加载证书(不用于智能卡)
  • 启动安装在设备上的本地应用程序,并通过协议调用,使用嵌入式http服务器或使用铬消息传递api。
  • 耐心等待关键发现Api,它将提供对OS密钥存储到WebCrypto的访问
票数 2
EN

Stack Overflow用户

发布于 2016-11-13 15:02:36

实际上,我已经创建了一个.NET ActiveX对象,并使用X509Certificate2UI类和来自同一个名称空间的其他类来显示有关证书的信息,并对一些数据进行签名。

Pros:不需要使用CAPICOM。

Cons:它仍然是一个ActiveX组件,所以它只能在Internet中使用。

但这对我的当事人来说没问题,所以我走了这条路。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40497439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档