更改x509扩展属性/用法

问题描述:

有没有什么办法可以通过编程来编辑为x.509证书启用的用途?更改x509扩展属性/用法

此功能可通过证书mmc管理单元(下面的超链接)获得,但我需要通过代码执行操作。最好是C#。

modify the properties of a certificate

MMC卡可以做任何加密API可以做,有证书的相关功能,如CertAddEnhancedKeyUsageIdentifierCertSetCertificateContextProperty一堆。在Example C Program: Getting and Setting Certificate Properties有一个完整的示例,其中包括对“增强密钥用法”的修改,该修改指定证书有效的用途。例如,要从服务器端获得对SSL有效的证书,您必须添加EKU OID 1.3.6.1.5.5.7.3.1(又名'服务器身份验证'),请参阅Configuring Certificate for Use by SSL

C#等价物是X509KeyUsageExtension类。有关示例,请参阅类规范的链接。

+0

谢谢。 C#x509keyususageextension只会修改内存中的证书集合,而不是实际的证书存储。您的链接非常有帮助。 Crypto API CertAddEnhancedKeyUsageIdentifier确实修改了商店中的证书,只需要一个快速的dllimport。 – RSmith 2010-01-28 18:02:49

+0

感谢您回复反馈。我没有意识到真正的API和受管理的API之间的差异。我自己总是直接使用Crypto API的东西。 – 2010-01-28 18:12:11