powershell - 在 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 确实显示了主题密钥标识符的长字符串值。
如何在对象中提取该值?
解决方案
正如 bartonjs 所说,PowerShell 或 .NET 中没有对 AKI 扩展的内置支持。您必须使用 3rd 方库或工具。不过,如果你被允许使用 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:\>
推荐阅读
- python - 我正在尝试从文件中提取序列,但出现以下错误
- java - 获取同一行中的整数和字符
- java - Executor FixedThreadPool 执行后会发生什么,因为 executor 没有关闭方法?
- python - 在 Google Coral 开发板上使用 OpenCL 和 OpenCV 的工作组大小错误
- c# - 计算列表中数字之间的差异
- java - Java 中的 HeapDump 和内存泄漏
- java - 如何使用 BlockingQueue 解决容量为 1 的生产消费者问题?
- react-native - React Native Paper TextInput 样式不适用
- python - 将包含 18000 个电子邮件文本文件的文件夹传递到函数中以提取所有电子邮件和文本主题
- swift - AudioKit:createVirtualPorts 不转发端口 ID