[英]Cannot find “AuthorityKeyIdentifier” value in x509Certificates object PowerShell
我從 x509certificates object 中提取“SubjectKeyIdentifier”值沒有問題,我首先將 X509 object 設置為變量 $Cert,然后執行以下行:
$Cert.Extensions.SubjectKeyIdentifier
該值對應於我在 MMC GUI 中看到的值。
然而,沒有這樣的價值或選擇
$Cert.Extensions.AuthorityKeyIdentifier.
我可以通過 go 進一步進入 object:
$Cert.Extensions.Oid
這會產生兩列,例如:
Value FriendlyName
2.5.29.14 Subject Key Identifier
2.4.29.35 Authority Key Identifier
但是,我發現沒有辦法像我為主題密鑰標識符所做的那樣獲得授權密鑰標識符的實際值或真實值,並且它對應於 MMC GUI 中的值。
確認一下,這是一個葉級證書,GUI 確實顯示了主題密鑰標識符的長字符串值。
如何在 object 中提取該值?
該框架沒有用於授權密鑰標識符的內置解碼器。 您必須使用 ASN.1 DER 閱讀器,例如https://dotnet.myget.org/feed/dotnet-corefxlab/package/nuget/System.Security.Cryptography.Asn1.Experimental、Bouncy Castle 或其他非內置技術(或手動滾動)並根據https://tools.ietf.org/html/rfc5280#section-4.2.1.1中的編碼解碼 X509Extension.RawData 值。
正如 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:\>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.