首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过PowerShell从证书文件中导出根签名证书和中间签名证书?

如何通过PowerShell从证书文件中导出根签名证书和中间签名证书?
EN

Stack Overflow用户
提问于 2021-01-08 03:49:02
回答 2查看 343关注 0票数 0

使用PowerShell;我需要获取一个证书文件(.cer/.crt),并将中间签名证书文件和根签名证书文件导出到同一目录。我最多能做的就是获得证书颁发者名称(中间CA)。如何利用PowerShell确定中间签名CA和根签名CA并保存这些证书?

代码语言:javascript
复制
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 D:\Netscaler_Certificates\example.2021.cer
$cert.IssuerName

给了我:

代码语言:javascript
复制
Name                                   Oid                                RawData            
----                                   ---                                -------            
CN=Subordinate CA, DC=domain, DC=com   System.Security.Cryptography.Oid   {48, 99, 49...}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-08 06:42:40

您需要构建证书链,然后导出链元素:

代码语言:javascript
复制
$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
}
票数 1
EN

Stack Overflow用户

发布于 2021-05-08 04:01:24

....and要“托管”您刚刚从上一个答案中导出的证书,下一行可能是:

代码语言:javascript
复制
(($chain.ChainElements.Certificate.Subject | Select-Object -Skip 1) -Replace ", .*").trimstart("CN=")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65619005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档