3

尽管进行了广泛的搜索,但我找不到任何CustomExtensions在 X509 (v3) 证书上设置自定义扩展(属性)的示例。

如果我想生成一个新证书(基于机器上已经安装的现有 CA 证书),我该如何添加自定义扩展?我希望在证书中携带一些额外的自定义信息以供以后检查。这可以通过编程方式或使用 makecert 来完成吗?还是只能通过编写生成证书时调用的自定义策略模块来设置这些扩展?这甚至可以通过使用.Net 框架中的常规X509Certificate或类来实现吗?X509Certificate2

我找到了检查自定义扩展的代码,但没有设置它。

4

1 回答 1

1

无论您拥有什么现有证书,它都通过签名“密封”。更改其内容会使签名无效,从而使证书无效。这就是为什么您找不到任何有关您想要做什么的信息的原因。

当您通过 MMC 中的证书管理管理单元查看证书或在 Internet Explolrer 中浏览证书时,您可能会感到困惑的是证书的自定义属性。此类属性不存储在证书中 - 它们由 CryptoAPI 单独保存,而不是“嵌入”到证书中。

对于您拥有私钥的自签名证书,您可以重新创建证书并为其添加自定义扩展,但这种情况很少见。我不确定 .NET Framework 是否允许您使用自定义扩展,但我们的 SecureBlackbox 可以。

于 2012-07-08T05:32:42.637 回答