尽管进行了大量搜索,但我找不到在X509(v3)证书上设置自定义扩展(CustomExtensions
属性)的任何示例。
如果我想生成新证书(基于计算机上已安装的现有CA证书),我该如何为其添加自定义扩展?我希望在证书中附带一些额外的自定义信息供以后检查。可以通过编程方式或使用makecert完成吗?或者只能通过编写生成证书时调用的custom policy module来设置这些扩展吗?甚至可以通过使用.Net框架中的常规X509Certificate
或X509Certificate2
类来实现这一目标吗?
我找到了检查自定义扩展的代码,但没有设置它。
答案 0 :(得分:1)
无论您拥有何种现有证书,它都会被密封"通过签署。更改其内容会使签名无效,从而使证书无效。这就是为什么你无法找到任何关于你想做什么的信息。
当您通过MMC中的“证书管理”管理单元或在Internet Explolrer中浏览证书时,可能会使您感到困惑的是证书的自定义属性。这些属性不存储在证书中 - 它们由CryptoAPI单独保存,而不是"嵌入"进入证书。
对于您拥有私钥的自签名证书,您可以重新创建证书并添加自定义扩展,但这种情况很少见。我不确定.NET Framework是否允许您使用自定义扩展,但我们的SecureBlackbox可以。