谁能帮我解决以下问题(使用PowerShell)
我有一个CSR在Base64字符串保存到一个变量叫做$CSR
我想从CSR中获得公钥,我想这样做的原因是我想检查公钥(因此私钥)在为微软CA提交CSR时不会被重用。我的想法是基本上从CA获得具有相同主题名称(如果存在)的证书的副本,并再次检查其公钥CSR。
所以我需要从CSR中获得如上所述的公钥,因此到目前为止,我已经完成了以下操作
$RequestX = New-Object ComObjectX509enrollment.CX509CertificateRequestPkcs10
$RequestX.InitializeDecode($CSR,6)"RequestX美元。PublicKey
谢谢所有E黑雁
我弄清楚了我的混乱等....
我们的目标是将CSR中的公钥与现有证书中的公钥进行比较,看看它们是否匹配(现在可能是一种更简单的方法,但现在我明白了)
$CSR = @"
<CSR here in base64>
"@
$ObjXX = [System.Security.Cryptography.X509Certificates.X509Certificate2]::CreateFromCertFile("C:CSRCert-TestSite.cer")
$X = [System.Convert]::ToBase64String($ObjXX.GetPublicKey())
$RequestX = New-Object -ComObject X509enrollment.CX509CertificateRequestPkcs10
$RequestX.InitializeDecode($CSR,6)
$Y = $RequestX.PublicKey.EncodedKey() -replace "`r`n"
Compare-Object $X $Y