Windows 7 证书存储的默认行为包括存储您从智能卡使用的所有公钥。这有时是不可取的,因为如果某些机器需要使用大量智能卡,“请选择证书”弹出窗口会变得越来越拥挤。
有没有办法配置 Windows,使得一旦智能卡被移除,与智能卡相关联的公钥就会自动从证书存储中删除?
或者,有没有一种方法可以首先阻止 Windows 在商店中存储智能卡证书?
答案1
我不知道如何自动删除此类证书,但您可以通过转到控制面板 -> Internet 选项 -> 内容选项卡 -> 证书来清除它们。选择要删除的证书,然后单击删除。
否则,您将需要编写一个实用程序来检测智能卡插入事件,然后列出并记住所有证书,最后在智能卡移除事件发生时将它们从证书存储中删除。
如果您打算这样做,除了可以在 Microsoft 网站上找到的详细文档之外,这里还有一些参考资料可以帮助您了解所需的编程:
如何枚举智能卡上的所有证书(PowerShell,但可以适应C/C##)
.NET 智能卡框架
pcsc-sharp 库
答案2
您可以使用以下命令删除商店中的所有智能卡证书:
certutil -user -delstore my 1.3.6.1.4.1.311.20.2.2
当您将智能卡推入读卡器时,所使用的智能卡的证书将出现在证书存储中。
要了解更多详细信息 - 请在您最喜欢的搜索引擎上查看 1.3.6.1.4.1.311.20.2.2。