Ответы:
Хранилище сертификатов Windows (в основном) хранится в реестре, как описано здесь . Однако, хотя IE, Chrome, Safari / iTunes, Outlook и т. Д. Используют хранилище сертификатов Windows, Firefox и Thunderbird используют кроссплатформенное хранилище сертификатов NSS. Opera также использует свое собственное отдельное хранилище сертификатов.
Если вы хотите получить доступ к хранилищу сертификатов Windows, вам следует использовать CryptoAPI от Microsoft. Если вы хотите получить доступ к хранилищу сертификатов NSS, вы можете использовать библиотеку NSS .
В Windows нет «папки» сертификатов; он хранится во внутренней базе данных ( реестр Windows ), с которой вы взаимодействуете способами, перечисленными в исходном вопросе. Самый простой способ получить доступ к этой базе данных - это просто положить ее certmgr.msc
в окно запуска / запуска.
Если вам действительно любопытно, вы можете найти реальные записи реестра в:
\SOFTWARE\Microsoft\SystemCertificates\
Для HKEY_CURRENT_USER
пользовательских сертификатов и HKEY_LOCAL_MACHINE
для машинных сертификатов, но они будут нечитаемыми двоичными объектами. Просто лучше использовать оснастку MMC, которую я перечислил ранее.
Вот краткое описание местоположения (ключи реестра и файлы):
Уровень пользователя (реестр):
HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates
: Содержит сертификаты настроек для текущего пользователя.
HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates
: Как и в предыдущем месте, но это соответствует сертификатам пользователей, в которых развернут объект групповой политики.
HKEY_USERS\SID-User\Software\Microsoft\SystemCertificates
: Соответствует конфигурации определенных пользовательских сертификатов. У каждого пользователя есть своя ветка в реестре с SID (идентификатор безопасности).
Уровень компьютера (реестр):
HKEY_LOCAL_MACHINE\Software\Microsoft\SystemCertificates
: Содержит сертификаты настроек для всех пользователей компьютера.
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\SystemCertificates
: Как и в предыдущем месте, но это соответствует сертификатам компьютера, на которых развернут объект групповой политики.
Уровень обслуживания (реестр):
HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Services\ServiceName\SystemCertificates
: Содержит сертификаты настроек для всех служб на компьютере.
Уровень Active Directory (реестр):
HKEY_LOCAL_MACHINE\Software\Microsoft\EnterpriseCertificates
: Сертификаты, выданные на уровне Active Directory.
И есть несколько папок и файлов, соответствующих хранилищу сертификатов 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
Сертификаты хранятся в реестре по адресу
HKLM/Software/Microsoft/SystemCertificates
Личные сертификаты или другие сертификаты, относящиеся к зарегистрированному пользователю, находятся по адресу
HKCU/Software/Microsoft/SystemCertificates
Они хранятся в виде двоичных двоичных объектов, поэтому их необходимо декодировать, и плагин MMC является хорошим способом сделать это.
Дайте шанс PowerShell:
Get-Childitem Cert:\currentUser -Recurse | Format-Table -AutoSize PSPath, FriendlyName, DnsNamelist
HKLM/Software/Microsoft/SystemCertificates
иHKCU/Software/Microsoft/SystemCertificates
. Обратите внимание на отсутствующую систему.