在 x509Certificates 对象 PowerShell 中找不到"AuthorityKeyIdentifier"值



我从 x509certificates 对象中提取"SubjectKeyIdentifier"值没有问题,我首先将 X509 对象设置为变量 $Cert 然后执行以下行:

$Cert.Extensions.SubjectKeyIdentifier

该值对应于我在 MMC GUI 中看到的值。

但是,没有这样的值或选项

$Cert.Extensions.AuthorityKeyIdentifier.

我可以通过以下方式进一步了解对象:

$Cert.Extensions.Oid

这将产生两列,例如:

Value       FriendlyName
2.5.29.14   Subject Key Identifier
2.4.29.35   Authority Key Identifier

但是,我无法像对主题密钥标识符所做的那样获取颁发机构密钥标识符的实际或真实值,并且对应于 MMC GUI 中的值。
为了确认,这是一个叶级证书,GUI 确实显示主题密钥标识符的长字符串值。

如何在对象中提取该值?

该框架没有用于颁发机构密钥标识符的内置解码器。 您必须使用 ASN.1 DER 阅读器,例如 https://dotnet.myget.org/feed/dotnet-corefxlab/package/nuget/System.Security.Cryptography.Asn1.Experimental、Bouncy Castle 或其他非内置技术(或手动滚动(,并根据 https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.1 中的编码解码 X509Extension.RawData 值。

正如bartonjs所说,PowerShell或.NET中没有对AKI扩展的内置支持。您必须使用第三方库或工具。不过,如果你被允许使用PS模块,你可以试试我的PowerShell PKI(PSPKI(模块。该模块附带了一个库,其中包含大多数 X.509 扩展(包括 AKI(的类。

导入模块后,可以调用:

$cert.ResolvedExtensions

返回解码扩展的集合:

PS C:> $cert.ResolvedExtensions | ?{$_.oid.value -eq "2.5.29.35"}
IncludedComponents : KeyIdentifier
KeyIdentifier      : 0159abe7dd3a0b59a66463d6cf200757d591e76a
IssuerNames        :
SerialNumber       :
Critical           : False
Oid                : 2.5.29.35 (Authority Key Identifier)
RawData            : {48, 22, 128, 20...}

PS C:>

相关内容

  • 没有找到相关文章

最新更新