Windows的证书存储库(大部分)存储在注册表中如这里所述。但是,IE、Chrome、Safari/iTunes、Outlook等使用Windows的证书库,Firefox和Thunderbird则使用NSS的跨平台证书库。如果你想访问Windows的证书库,那么你应该使用微软的CryptoAPI。如果你想访问NSS的证书库,那么你可以使用NSS库。
在Windows中没有任何证书的 “文件夹",它存储在一个内部数据库Windows注册表)中,你可以用你原来的问题中列出的方法来连接。最简单的方法就是把certmgr.msc
放在你的启动/运行框中。最好是使用我前面列出的 MMC snap-in。
以下是位置汇总(注册表键和文件):
用户级别(注册表):
HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates
。包含当前用户的设置证书。
HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates
:包含当前用户的设置证书。与上一个位置一样,但这对应的是部署了GPO(组策略)的用户证书。对应于某些用户证书的配置。每个用户在注册表中都有它的分支,带有SID(安全标识符)。
计算机级(注册表):
HKEY_USERS\SID-User\Software\Microsoft\SystemCertificates
。包含所有计算机用户的设置证书。
HKEY_LOCAL_MACHINE\Software\Microsoft\SystemCertificates
:包含所有计算机用户的设置证书。
服务级(注册表):
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\SystemCertificates
:包含所有计算机用户的设置证书。包含计算机上所有服务的设置证书。
**活动目录级别(注册表):*
HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Services\ServiceName\SystemCertificates
:包含计算机上所有服务的设置证书。
还有一些文件夹和文件对应于Windows证书库。
这些文件夹都是隐藏的,公钥和私钥分别位于不同的文件夹中。
用户证书(文件):
%APPDATA%\Microsoft\SystemCertificates\My\Certificates
%USERPROFILE%\AppData\Roaming\Microsoft\Crypto\RSA\SID
%USERPROFILE%\AppData\Roaming\Microsoft\Credentials
%USERPROFILE%\AppData\Roaming\Microsoft\Protect\SID
计算机证书(文件):
C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
摘自: http://www.sysadmit.com/2017/10/windows-donde-se-guardan-certificados.html
给PowerShell一个机会:
Get-Childitem Cert:\currentUser -Recurse | Format-Table -AutoSize PSPath, FriendlyName, DnsNamelist