有没有办法以编程方式编辑为 x.509 证书启用的用途?
此功能可通过证书 mmc 管理单元(下面的超链接)获得,但我需要通过代码执行操作。最好是 C#。
MMC 可以做任何 Crypto API 可以做的事情,并且有一堆与证书相关的函数,例如CertAddEnhancedKeyUsageIdentifier或CertSetCertificateContextProperty。Example C Program: Getting and Setting Certificate Properties中有一个完整的示例,包括对指定证书有效用途的“增强密钥用法”的修改。例如,要从服务器端使证书对 SSL 有效,您必须添加 EKU OID 1.3.6.1.5.5.7.3.1
(又名“服务器身份验证”),请参阅配置 SSL 使用的证书。
C# 等效项是X509KeyUsageExtension类。有关示例,请参见类规范的链接。