Respostas:
O armazenamento de certificados do Windows (principalmente) é armazenado no registro, conforme descrito aqui . No entanto, enquanto o IE, Chrome, Safari / iTunes, Outlook etc. usam o repositório de certificados do Windows, o Firefox e o Thunderbird usam o repositório de certificados entre plataformas do NSS. O Opera também usa seu próprio armazenamento de certificados separado.
Se você deseja acessar o armazenamento de certificados do Windows, use o CryptoAPI da Microsoft. Se você quiser acessar o armazenamento de certificados NSS, poderá usar a biblioteca NSS .
Não há nenhuma "pasta" de certificados no Windows; ele é armazenado em um banco de dados interno ( Registro do Windows ) com o qual você faz interface usando as maneiras listadas na sua pergunta original. A maneira mais fácil de acessar esse banco de dados é simplesmente colocar certmgr.msc
na sua caixa de inicialização / execução.
Se você estiver realmente curioso, poderá encontrar as entradas reais do registro em:
\SOFTWARE\Microsoft\SystemCertificates\
Para HKEY_CURRENT_USER
certificados específicos do usuário e certificados específicos HKEY_LOCAL_MACHINE
da máquina, eles serão blobs binários não legíveis. É melhor usar o snap-in do MMC listado anteriormente.
Aqui está um resumo do local (chaves e arquivos de registro):
Nível de usuário (registro):
HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates
: Contém certificados de configurações para o usuário atual.
HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates
: Como no local anterior, mas isso corresponde aos certificados de usuário implantados em um GPO (Diretiva de Grupo).
HKEY_USERS\SID-User\Software\Microsoft\SystemCertificates
: Corresponde à configuração de determinados certificados de usuário. Cada usuário tem sua filial no registro com o SID (Identificador de Segurança).
Nível do computador (registro):
HKEY_LOCAL_MACHINE\Software\Microsoft\SystemCertificates
: Contém certificados de configurações para todos os usuários de computador.
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\SystemCertificates
: Como no local anterior, mas isso corresponde aos certificados de computador implantados em um GPO.
Nível de serviço (registro):
HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Services\ServiceName\SystemCertificates
: Contém certificados de configurações para todos os serviços no computador.
Nível do Active Directory (registro):
HKEY_LOCAL_MACHINE\Software\Microsoft\EnterpriseCertificates
: Certificados emitidos no nível do Active Directory.
E existem algumas pastas e arquivos correspondentes ao armazenamento de certificados do Windows.
As pastas estão ocultas e as chaves públicas e privadas estão localizadas em pastas diferentes.
Certificados de usuário (arquivos):
%APPDATA%\Microsoft\SystemCertificates\My\Certificates
%USERPROFILE%\AppData\Roaming\Microsoft\Crypto\RSA\SID
%USERPROFILE%\AppData\Roaming\Microsoft\Credentials
%USERPROFILE%\AppData\Roaming\Microsoft\Protect\SID
Certificados de computador (arquivos):
C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
Extraído de: http://www.sysadmit.com/2017/10/windows-donde-se-guardan-certificados.html
Os certificados são armazenados no registro em
HKLM/Software/Microsoft/SystemCertificates
Certificados pessoais ou outros certificados específicos para o usuário conectado estão em
HKCU/Software/Microsoft/SystemCertificates
Eles são armazenados como blobs binários, portanto, precisam ser decodificados, e o plug-in do MMC é uma boa maneira de fazer isso.
Dê uma chance ao PowerShell:
Get-Childitem Cert:\currentUser -Recurse | Format-Table -AutoSize PSPath, FriendlyName, DnsNamelist
HKLM/Software/Microsoft/SystemCertificates
eHKCU/Software/Microsoft/SystemCertificates
. Observe o sistema ausente.