繁体   English   中英

获取 SSL 证书“颁发给”

[英]Get SSL Certificate 'Issued to'

我想知道如何获得Issued to字段值的本地计算机 SSL 证书。 我使用此命令显示所有 SSL 证书信息,但它没有显示Issued To字段

GET-CHILDITEM -Path 'Cert:\LocalMachine\' –RECURSE | FORMAT-LIST –PROPERTY *

这回答了你的问题了吗?

gci Cert:\LocalMachine\my| select -expandp dnsnamelist

享受-汤姆

使用主题属性。

Get-ChildItem -Path 'Cert:\LocalMachine\' -Recurse | Format-List -Property Subject

IssuedTo字段似乎是由certmgr.msc基于Subject字段动态生成的。

根据我在我的机器上安装的证书,我得到的最接近的是这样的:

$CertsDetail = Get-ChildItem -Path 'Cert:\LocalMachine\' –Recurse
$CertsDetail | select @{n="IssuedTo";e={(($_.Subject -split ",") |? {$_ -like "CN=*"}) -replace "CN="}}

我所做的是使用计算属性在Subject中找到第一个CN=部分,然后删除该CN=部分。 可以肯定的是,这并没有涵盖所有可能的场景,但您可以将其用作起点。

您可以尝试从Issuer字段中解析它们:

Get-ChildItem -Path 'Cert:\LocalMachine\' -Recurse |                                            #'# dummy comment to correct code-highlighting in SO
    Where-Object { !$_.PsIsContainer } | 
    ForEach-Object {
        # get at most two parts out of the $_.Issuer string
        $issuer = '{0}, {1}' -f ([regex] 'O=([^,]+)').Match($_.Issuer).Groups[1].Value, 
                                ([regex] 'CN=([^,]+)').Match($_.Issuer).Groups[1].Value
        [PSCustomObject]@{
            FriendlyName = $_.FriendlyName
            Issuer       = $issuer.Trim(', "')
            Subject      = $_.Subject
        }
    } | Format-List

在我的机器上,它返回如下内容:

 FriendlyName: Sectigo Issuer: The USERTRUST Network, USERTrust RSA Certification Authority Subject: CN=USERTrust RSA Certification Authority, O=The USERTRUST Network, L=Jersey City, S=New Jersey, C=US FriendlyName: Go Daddy Class 2 Certification Authority Issuer: The Go Daddy Group Subject: OU=Go Daddy Class 2 Certification Authority, O="The Go Daddy Group, Inc.", C=US FriendlyName: VeriSign Issuer: VeriSign Subject: OU=VeriSign Commercial Software Publishers CA, O="VeriSign, Inc.", L=Inte.net

我使用@Theo 的示例为要求使用该工具进行交叉检查的用户制作 certlm.msc UI 视图工具的近似值。

Get-ChildItem -Path 'Cert:\LocalMachine\' -Recurse |
    Where-Object { !$_.PsIsContainer } | 
    ForEach-Object {

        # use the same fields as certlm.msc
        $issuer = '{0}' -f ([regex] 'CN=([^,]+)').Match($_.Issuer).Groups[1].Value
        $subject = '{0}' -f ([regex] 'CN=([^,]+)').Match($_.Subject).Groups[1].Value

        [PSCustomObject]@{
            Store        = $_.PSParentPath.SubString($_.PSParentPath.IndexOf("::")+2)
            IssuedTo      = $subject.Trim(', "') #$_.Subject
            IssuedBy       = $issuer.Trim(', "')
            Expires      = $_.NotAfter
            PrivateKey      = $_.HasPrivateKey
            Exportable     = $_.PrivateKey.CspKeyContainerInfo.Exportable
            Thumb        = $_.Thumbprint
        }
    } | Sort-Object -Property Store, IssuedTo | FT -AutoSize

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM