Active Directory证书服务-如何列出CA Server中的所有可用证书模板?

时间:2019-01-11 14:00:14

标签: c# asp.net certificate x509certificate ca

我在Windows服务器中设置了CA服务器。我在C#中有一个客户端代码,该代码创建了CSR发送到服务器并从服务器下载已颁发的证书。我想知道可以使用 C#代码检索CA服务器中的证书模板列表吗?

1 个答案:

答案 0 :(得分:1)

可以使用ICertRequest2 COM接口并调用ICertRequest2::GetCAProperty方法来检索分配给CA服务器模板的列表。

您将必须添加一个CertCli COM库引用(在Visual Studio中)。另外,您可以使用tlbimp.exe库中的certcli.dll工具创建Introp库,然后使用实现CCertRequest接口的ICertRequest类。

为了检索证书模板列表,请在CR_PROP_TEMPLATES参数中传递dwPropId值。有关GetCAProperty方法调用的更多详细信息,可以咨询ICertRequestD2::GetCAProperty DCOM描述,该描述是MS-WCCE协议规范的一部分。

该方法以以下格式返回字符串值:TemplateName1\nTemplateOID1\nTemplateName2\nTemplateOID2\...。您可以将带有\n字符的字符串拆分为字符串数组,其中每个偶数(假定从零开始的索引)元素代表模板显示名称(非通用名称或cn属性),奇数元素表示模板OID。有关输出的更多详细信息:[MS-WCCE] §3.2.2.6.3.1.1 PropID=0x0000001D (CR_PROP_TEMPLATES) "Configured Certificate Templates"