คำตอบ:
เก็บใบรับรองหน้าต่างเป็น (ส่วนใหญ่) เก็บไว้ในรีจิสทรีตามที่ระบุไว้ที่นี่ อย่างไรก็ตามในขณะที่ IE, Chrome, Safari / iTunes, Outlook ฯลฯ ใช้ที่เก็บใบรับรองของ Windows, Firefox และ Thunderbird ใช้ที่เก็บใบรับรองข้ามแพลตฟอร์มของ NSS Opera ยังใช้ที่เก็บใบรับรองแยกต่างหาก
หากคุณต้องการเข้าถึงที่เก็บใบรับรองของ Windows คุณควรใช้ CryptoAPI ของ Microsoft หากคุณต้องการเข้าถึงที่เก็บใบรับรอง NSS คุณสามารถใช้ไลบรารี NSSได้
ไม่มี "โฟลเดอร์" ของใบรับรองใน Windows; จะถูกเก็บไว้ในฐานข้อมูลภายใน ( Windows Registry ) ที่คุณเชื่อมต่อโดยใช้วิธีการที่คุณระบุไว้ในคำถามเดิมของคุณ วิธีที่ง่ายที่สุดในการเข้าถึงฐานข้อมูลนั้นก็แค่ใส่certmgr.msc
ในกล่องเริ่ม / เรียกใช้ของคุณ
หากคุณสงสัยจริงๆคุณสามารถค้นหารายการรีจิสตรีได้ตาม:
\SOFTWARE\Microsoft\SystemCertificates\
ในHKEY_CURRENT_USER
สำหรับใบรับรองเฉพาะผู้ใช้และใบรับรองเฉพาะHKEY_LOCAL_MACHINE
เครื่อง แต่จะเป็นไบนารีบล็อตที่ไม่สามารถอ่านได้ เป็นการดีกว่าที่จะใช้MMC snap-in ที่ฉันระบุไว้ก่อนหน้านี้
นี่คือการสรุปตำแหน่ง (คีย์รีจิสตรีและไฟล์):
ระดับผู้ใช้ (รีจิสทรี):
HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates
: มีใบรับรองการตั้งค่าสำหรับผู้ใช้ปัจจุบัน
HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates
: เหมือนตำแหน่งก่อนหน้า แต่สิ่งนี้สอดคล้องกับใบรับรองผู้ใช้ที่ปรับใช้ GPO (นโยบายกลุ่ม)
HKEY_USERS\SID-User\Software\Microsoft\SystemCertificates
: สอดคล้องกับการกำหนดค่าใบรับรองผู้ใช้บางอย่าง ผู้ใช้แต่ละคนมีสาขาในรีจิสทรีด้วย SID (Security Identifier)
ระดับคอมพิวเตอร์ (รีจิสทรี):
HKEY_LOCAL_MACHINE\Software\Microsoft\SystemCertificates
: มีใบรับรองการตั้งค่าสำหรับผู้ใช้คอมพิวเตอร์ทุกคน
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\SystemCertificates
: เหมือนตำแหน่งก่อนหน้า แต่สิ่งนี้สอดคล้องกับใบรับรองคอมพิวเตอร์ที่ปรับใช้ GPO
ระดับการบริการ (รีจิสทรี):
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
พวกเขาจะถูกเก็บไว้เป็น blobs ไบนารีดังนั้นพวกเขาจึงจำเป็นต้องถอดรหัสและปลั๊กอิน MMC เป็นวิธีที่ดีในการทำเช่นนี้
ฉันดูอีกครั้งเกี่ยวกับการตั้งค่านโยบายกลุ่มที่ฉันใช้ มีตัวเลือก "เรียกใช้ในบริบทความปลอดภัยของผู้ใช้ที่เข้าสู่ระบบ (ตัวเลือกนโยบายผู้ใช้)" ที่ฉันเปิดใช้งานและตอนนี้รายการรีจิสทรียังคงอยู่
ให้โอกาสกับ PowerShell:
Get-Childitem Cert:\currentUser -Recurse | Format-Table -AutoSize PSPath, FriendlyName, DnsNamelist
HKLM/Software/Microsoft/SystemCertificates
HKCU/Software/Microsoft/SystemCertificates
บันทึกระบบที่หายไป