如何获取证书模板的 OID?

如何获取证书模板的 OID?

我正在使用 C#(或 VBScript)从企业 CA 颁发证书。

根据这个答案,我需要指定 OID 而不是证书名称,并将其放在代码的意外部分。(恕我直言,我应该将其放在空字符串所在的位置)

我正在查看证书管理器、模板等,但找不到我应该使用的 OID。有什么建议吗?

答案1

证书模板存储在 Active Directory 的配置分区中。

例如,如果您的证书模板名为“智能卡”,那么它的 DN 将是:

CN=Smartcard,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=Contoso,DC=Com

该对象的属性msPKI-Cert-Template-OID包含您所寻找的 OID。

编辑:这是一些 Powershell:

PS C:\Users\Ryan> Get-ADObject 'CN=Smartcard,CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=Contoso,DC=Com' -Properties msPKI-Cert-Template-OID


DistinguishedName       : CN=Smartcard,CN=Certificate Templates,CN=Public Key
                          Services,CN=Services,CN=Configuration,DC=Contoso,DC=Com
msPKI-Cert-Template-OID : 1.3.6.1.4.1.311.21.8.13882702.11110958.1330334.1890290.2281445.541.2.14
Name                    : Smartcard
ObjectClass             : pKICertificateTemplate
ObjectGUID              : 1cd4698d-56fe-4d4b-8005-f89a76d24ae1

答案2

我在查找证书模板的专有名称时遇到了麻烦,因此我按照以下步骤找到了与其他答案不同的方法:

  • 打开 MMC 并添加证书模板管理单元(文件 > 添加/删除管理单元 > 证书模板 - 您可能需要以管理员身份运行才能使用此管理单元)
  • 右键单击您想要 OID 的证书模板
  • 打开属性
  • 打开扩展选项卡
  • 选择证书模板信息
  • OID 将显示在下面描述中的“对象标识符”后面

答案3

我认为您可能需要这个完整的字符串作为您的域 OID。

    Get-ADObject ('CN=OID,CN=Public Key Services,CN=Services,'+(Get-ADRootDSE).configurationNamingContext) -Properties msPKI-Cert-Template-OID | Select-Object -ExpandProperty msPKI-Cert-Template-OID

相关内容