如何从PKI卡读取证书?
我尝试在互联网上找到答案,但我没有取得任何好成绩。
如何从PKI卡获取证书?
我需要使用证书密钥签署一些表单。所有这些都将在网络应用中发生。
...后来
我没有尝试过多,因为我没有重点开始。我刚刚了解到,当您插入卡时,Windows会读取所有证书。这样我认为我可以使用X509Store
来获取它们。我会尝试一下,但我会回来,但我仍然需要一些帮助。
答案 0 :(得分:3)
只要您插入SmartCard,证书就会被复制到您当地的个人证书存储区。您可以使用" certmgr.msc" (运行 - >输入)查看这些证书。
您可以使用X509Store访问证书以及相关的私钥。但当然,出于安全原因,您只能在您的计算机上本地执行此操作。想象一下,每个网站都可以访问您的私钥...... How to Sign and Verify the signature with .NET and a certificate (C#)
如果您使用的是CAPICOM,则仍需要在本地计算机上执行代码(JavaScript)。 您会找到以下语句here:
[CAPICOM是一个仅限32位的组件,可在以下操作系统中使用:Windows Server 2008,Windows Vista,Windows XP。而是使用.NET Framework实现安全功能。有关更多信息,请参阅下面列出的替代方案。] 重要 CAPICOM的替代方案都没有为脚本提供解决方案;因此,您必须编写自己的ActiveX控件。有关详细信息,请参阅ActiveX控件。
这表明.Net类不是" full"替换CAPICOM。所以你不能使用" X509" JavaScript中的类。
如果要使用客户端专用证书对某些数据进行签名(假设为哈希),则需要在客户端上运行代码。以下是您可以做的一些想法:
当然,您需要在服务器端检索数据,对于最后的解决方案,您可能需要一种Web服务。
<强>结论强>
不要对证书中的私钥和公钥感到困惑。 在某些情况下,您可以将证书发送到服务器,例如认证。 但那就是你的公钥。你永远不应该发送你的私钥(当然技术上可能)。