- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在下面的代码中,如您所见,我愿意收集有关 SSL 证书的信息,但我对字段 Issuer
和 Usages
的格式有两个问题跟上。第一个字段 Issuer
fir 示例显示如下结果:
O=VMware Installer
CN=Microsoft Development Root Certificate Authority 2014, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
我想要的是结果
VMware Installer
Microsoft Development Root Certificate Authority 2014
对于第二个字段Usages
,我有例如以下输出
DataEncipherment, KeyEncipherment, DigitalSignature
Value FriendlyName
----- ------------
1.3.6.1.5.5.7.3.1 Server Authentication
我想展示的是:
DataEncipherment, KeyEncipherment, DigitalSignature,Server Authentication
这是我的脚本:
$CertPath = "Cert:\LocalMachine\"
$CertsDetail = Get-ChildItem -Path $CertPath -Recurse |`
Where-Object { $_.PsIsContainer -ne $true } |`
ForEach-Object {
$Usages = foreach ($key in $_.Extensions) {
if ($key.KeyUsages) {
$key.KeyUsages
}
}
[PSCustomObject]@{
Issuer = $_.Issuer
Subject = $_.Subject
Usages = ($Usages | Out-String).Trim()
#Usages = $Usages -join ';'
}
}
$CertsDetail
$CertsDetail | Where-Object { $_.Usages -ne "" } | Export-Csv -NoTypeInformation -Path 'C:\SECnology\Data\Utilities\Certificate_State.csv'
最佳答案
也许像下面那样做会给你你想要的格式:
$CertPath = 'Cert:\LocalMachine\' #'# dummy comment to correct code-highlighting in SO
$CertsDetail = Get-ChildItem -Path $CertPath -Recurse | Where-Object { !$_.PsIsContainer } | ForEach-Object {
$Usages = ($_.Extensions | Where-Object {$_.KeyUsages}).KeyUsages
if ($Usages) {
# 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]@{
Issuer = $issuer.Trim(", ")
Subject = $_.Subject
Usages = $Usages.ToString() -replace ',', ';'
}
}
}
$CertsDetail | Format-List
$CertsDetail | Export-Csv -NoTypeInformation -Path 'C:\SECnology\Data\Utilities\Certificate_State.csv'
在我的(Windows 7)机器上尝试这个,它给了我这样的输出
Issuer : Microsoft Root Authority
Subject : CN=Microsoft Enforced Licensing Intermediate PCA, OU=Copyright (c) 1999 Microsoft Corp., O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Usages : CrlSign; KeyCertSign; DigitalSignature
Issuer : The USERTRUST Network, UTN-USERFirst-Hardware
Subject : CN=www.google.com, OU=PlatinumSSL, OU=Hosted by GTI Group Corporation, OU=Tech Dept., O=Google Ltd., STREET=Sea Village 10, L=English, S=Florida, PostalCode=38477, C=US
Usages : KeyEncipherment; DigitalSignature
关于powershell - 格式化发行者输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56271605/
我得到了两个 OpenSSL 版本的不同发行者/主题格式:OpenSSL 1.1.1 和 OpenSSL 1.0.2n。 1.1.1 版本可以像 1.0.2n 那样格式化主题/发行者吗? $ open
我有一个移动应用程序(react-native)、一个资源服务(spring boot)和 Keycloak Authenticatioin Service(Auth-Service)。 客户端直接使
我使用 oauth2 客户端设置了 spring boot,这是我的属性: spring: security: oauth2: client: registra
我是一名优秀的程序员,十分优秀!