如何解决如何通过 PowerShell 从证书文件导出根和中间签名证书?
使用PowerShell;我需要获取一个证书文件 (.cer/.crt),并将中间和根签名证书文件导出到同一目录。我能做的最多就是获取证书颁发者名称(中间 CA)。如何利用 PowerShell 确定中间和根签名 CA 并保存这些证书?
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 D:\Netscaler_Certificates\example.2021.cer
$cert.IssuerName
给我:
Name Oid RawData
---- --- -------
CN=Subordinate CA,DC=domain,DC=com System.Security.Cryptography.Oid {48,99,49...}
解决方法
您需要构建证书链,然后导出链元素:
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 D:\Netscaler_Certificates\example.2021.cer
$chain = new-object security.cryptography.x509certificates.x509chain
[void]$chain.Build($cert)
$chain.ChainElements | %{
sc -path .\$($_.Certificate.GetNameInfo("dnsName",$false)).cer -value $_.Certificate.RawData -encoding byte
}
,
....并“托管”您刚刚从上一个答案中导出的证书,下一行可能是:
(($chain.ChainElements.Certificate.Subject | Select-Object -Skip 1) -Replace ",.*").trimstart("CN=")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。