更改X509扩展属性/用途

3
有没有办法以编程方式编辑给定x.509证书启用的目的?虽然可以通过证书mmc快照(下面的超链接)获得此功能,但我需要通过代码执行操作。最好使用C#。 修改证书属性
1个回答

1

MMC可以执行Crypto 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。请参阅该类规范的链接以获取示例。


谢谢。C#的x509keyusageextension只会修改内存中证书的集合,而不是实际的证书存储。您提供的链接非常有帮助。Crypto API的CertAddEnhancedKeyUsageIdentifier函数可以修改存储中的证书,仅需要进行快速的dllimport操作。 - RSmith
感谢您回复反馈。我之前不知道真实API和托管API之间的区别。我自己总是直接使用Crypto API。 - Remus Rusanu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接