为什么我使用 New-SelfSignedCertificate -CertLocation Cert:\CurrentUser\My 创建的证书存储在 Cert:\CurrentUser\CA 中

为什么我使用 New-SelfSignedCertificate -CertLocation Cert:\CurrentUser\My 创建的证书存储在 Cert:\CurrentUser\CA 中

我在 Windows 10 上制作了一个自签名证书,如下所示:

$MasterKeyDNSName = 'CN=Always Encrypted Sample'
Write-Host "Creating Self Signed Certificate $($MasterKeyDNSName)"
$Cert = New-SelfSignedCertificate `
    -Subject $MasterKeyDNSName `
    -CertStoreLocation Cert:\CurrentUser\My ` 
    -KeyExportPolicy Exportable `
    -Type DocumentEncryptionCert `
    -KeyUsage DataEncipherment `
    -KeySpec KeyExchange
$CmkPath = "Cert:\CurrentUser\My\$($cert.ThumbPrint)"
Write-Verbose "Column Master Key Certificate Path: $($CmkPath)"

该证书具有 的指纹B91A912CF632575F784CDE485DA37AB2F23DB6BA,并出现在 下的电子注册表中HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\CA\Certificates\B91A912CF632575F784CDE485DA37AB2F23DB6BA

从 powershell 我可以通过 和 访问Cert:\CurrentUser\My\B91A912CF632575F784CDE485DA37AB2F23DB6BACert:\CurrentUser\CA\B91A912CF632575F784CDE485DA37AB2F23DB6BA

根据Microsoft 文档其中,我的文件夹使用 .Default 存储,CA 文件夹使用 .Default、GroupPolicy 和 .LocalMachine 物理存储。

My 是否像符号链接并且 CA 是权威位置?

答案1

My和CA商店确实不一样。

如果您打开 MMC certmgr,您会看到 My 是个人,CA 是中级证书颁发机构。

此命令:

$Cert = New-SelfSignedCertificate -Subject 'CN=Always Encrypted Sample'

将在 3 个存储中生成证书(除非您当前的路径是 Cert:\CurrentUser 或 Cert:\CurrentUser\My ):

  • 证书:\LocalMachine\我的
  • 证书:\LocalMachine\ca
  • 证书:\CurrentUser\ca

这样做的唯一原因未记录的我所看到的行为是一种笨拙的尝试,试图使自签名证书在生成时立即生效。

如果不是ca,而是将生成的证书自动发布到root商店(即受信任的根证书颁发机构),那么这个目标就可以实现。

也许创建代码的开发人员New-SelfSignedCertificate对故事名称感到困惑ca,因为 CA 无处不在证书颁发机构,而且只有在那里中级证书颁发机构

相关内容