Als u een Windows-systeembeheerder bent, bent u mogelijk gedwongen om met Windows-certificaten te werken. Het werken met certificaten in Windows is typisch een van die extra taken die een systeembeheerder op zich moet nemen. Met behulp van de Windows-certificaatbeheerder als tool kunt u het doen!
Certificaten staan bekend als complex en moeilijk te begrijpen, maar in dit artikel krijgt u de kans om te ontdekken dat certificaten in Windows helemaal niet eng zijn!
Dit artikel zal voornamelijk ingaan op het werken met certificaten in Windows. Als u meer wilt weten over hoe certificaten in het algemeen werken, bekijk dan het bijbehorende artikel van deze X.509 Certificate Tutorial.
Begrip van certificaatopslagplaatsen
In de Windows-certificaatbeheerder bestaan alle certificaten in logische opslaglocaties die worden aangeduid als certificaatopslagplaatsen. Certificaatopslagplaatsen zijn “bakken” waarin Windows alle certificaten bewaart die momenteel zijn geïnstalleerd, en een certificaat kan zich in meer dan één opslagplaats bevinden.
Helaas zijn certificaatopslagplaatsen niet het meest intuïtieve concept om mee te werken. Hieronder leest u hoe u deze opslagplaatsen kunt onderscheiden en hoe u ermee kunt werken.
Elke opslagplaats bevindt zich in het Windows-register en op het bestandssysteem. Raadpleeg de onderstaande tabel voor details. Bij het werken met een certificaat in een opslagplaats communiceert u met de logische opslagplaats; u wijzigt het register of het bestandssysteem niet direct. Op deze eenvoudigere manier kunt u werken met een enkel object terwijl Windows zorgt voor de representatie van dat object op de schijf.
Soms worden certificaatopslagplaatsen aangeduid als fysieke of logische opslagplaatsen. Fysieke opslagplaatsen verwijzen naar de daadwerkelijke bestandssysteem- of registerlocatie waar de registerkey(s) en/of het bestand(en) zijn opgeslagen. Logische opslagplaatsen zijn dynamische verwijzingen die één of meer fysieke opslagplaatsen aangeven. Logische opslagplaatsen zijn veel eenvoudiger te gebruiken dan fysieke opslagplaatsen voor de meeste gebruikelijke toepassingen.
Windows slaat certificaten op in twee verschillende gebieden – een gebruikers- en computercontext. Een certificaat wordt geplaatst in een van deze twee contexten, afhankelijk van of het certificaat moet worden gebruikt door een enkele gebruiker, meerdere gebruikers of de computer zelf. Voor de rest van dit artikel zal een certificaat in een gebruikers- en computercontext informeel worden aangeduid als gebruikerscertificaten en computercertificaten.
Gebruikerscertificaten
Als u wilt dat een certificaat wordt gebruikt door een enkele gebruiker, dan is een gebruikerscertificaatopslagplaats binnen de Windows-certificaatbeheerder ideaal. Dit is het gebruikelijke gebruiksscenario voor certificaatgebaseerde verificatieprocessen zoals bedrade IEEE 802.1x.
Gebruikerscertificaten bevinden zich binnen het profiel van de huidige gebruiker en worden alleen logisch toegewezen binnen die gebruikerscontext. Gebruikerscertificaten zijn “toegewezen” en zijn uniek voor elke gebruiker, zelfs op dezelfde systemen.
Computercertificaten
Als een certificaat door alle gebruikers op een computer of door een systeemproces zal worden gebruikt, moet het worden geplaatst binnen een opslag in de context van de computer. Bijvoorbeeld, als een certificaat zal worden gebruikt op een webserver om communicatie voor alle clients te versleutelen, zou het plaatsen van een certificaat in een opslag in de context van de computer ideaal zijn.
Je zult zien dat de certificaatopslag van een computer logisch is toegewezen voor alle gebruikerscontexten. Dit maakt het mogelijk dat certificaten in een computer-certificaatopslag worden gebruikt door alle gebruikers, afhankelijk van de machtigingen die zijn geconfigureerd voor de privésleutel.
Voor meer informatie over privésleutels, zorg ervoor dat je het artikel X.509-certificaten Zelfstudie: Een Sysadmin Gids bekijkt.
Computer certificaten bevinden zich in de lokale machine registerkluizen en de ProgramData map. Gebruikerscertificaten bevinden zich in de registerkluizen van de huidige gebruiker en de AppData map. Hieronder zie je een uitsplitsing van waar elk type opslag zich bevindt in het register en het bestandssysteem.
Context | Registry Path | Explanation |
---|---|---|
User | HKCU:\SOFTWARE\Microsoft\SystemCertificates\ | Physical store for user-specific public keys |
User | HKCU:\SOFTWARE\Policies\Microsoft\SystemCertificates\ | Physical store for user-specific public keys installed by Active Directory (AD) Group Policy Objects (GPOs) |
Computer | HKLM:\SOFTWARE\Microsoft\SystemCertificates\ | Physical store for machine-wide public keys |
Computer | HKLM:\SOFTWARE\Microsoft\Cryptography\Services\ | Physical store for keys associated with a specific service |
Computer | HKLM:\SOFTWARE\Policies\Microsoft\SystemCertificates\ | Physical store for machine-wide public keys installed by GPOs |
Computer | HKLM:\SOFTWARE\Microsoft\EnterpriseCertificates\ | Physical store for machine-wide public keys installed by the Enterprise PKI Containers within an AD domain |
Context | File Location | Explanation |
---|---|---|
User | $env:APPDATA\Microsoft\SystemCertificates\ | Physical store for user-specific public keys and pointers to private keys |
User | $env:APPDATA\Microsoft\Crypto\ | Physical store for user-specific private key containers |
Computer | $env:ProgramData\Microsoft\Crypto\ | Physical store for machine-wide private key containers |
Vereisten
In de rest van dit artikel zul je meerdere voorbeelden vinden van interacties met Windows-certificaatopslagen. Om deze voorbeelden te repliceren, zorg ervoor dat je aan de volgende vereisten voldoet:
- Windows Vista, Windows Server 2008, of een nieuwer besturingssysteem. De getoonde voorbeelden maken gebruik van Windows 10 Enterprise versie 1903.
- Bekendheid met PowerShell. Hoewel niet vereist, zal dit de taal zijn die wordt gebruikt om certificaten te refereren waar nodig. De getoonde voorbeelden zijn allemaal gemaakt met Windows PowerShell 5.1.
- Je zult geen specifieke certificaten hoeven te installeren om mee te doen, maar het gebruik van een zelfondertekend certificaat is voordelig.
Certificaten beheren in Windows
In Windows zijn er drie primaire manieren om certificaten te beheren:
- De Certificaten Microsoft Management Console (MMC) snap-in (certmgr.msc)
- PowerShell
- De
certutil
command-line tool
In dit artikel leer je hoe je certificaten beheert via de Certificaten MMC snap-in en PowerShell. Als je meer wilt weten over het gebruik van certutil
, bekijk dan de Microsoft Docs.
PowerShell vs. de Windows Security Certificate Manager
Aangezien certificaten op verschillende manieren kunnen worden beheerd in Windows, welke kies je? Moet je de GUI (MMC) gebruiken of de command-line met PowerShell?
Let op: Dit artikel is relevant voor zowel de Windows 7 Certificate Manager als de Windows 10 Certificate Manager MMC snap-ins.
Ten eerste, overweeg de levenscyclus van een certificaat. Als je alleen van plan bent om één certificaat te installeren of verwijderen, overweeg dan het gebruik van de MMC. Maar als je meerdere certificaten beheert of merkt dat je dezelfde taak steeds opnieuw uitvoert, is de command-line route misschien de beste keuze. Zelfs als je niet weet hoe je PowerShell-scripts moet schrijven, is het de moeite waard om te leren als je veel verschillende certificaten moet beheren.
Laten we eerst eens kijken hoe we de certificaten kunnen ontdekken die zijn geïnstalleerd op Windows met zowel de Certificate Manager als PowerShell.
Het gebruik van de Windows Certificate Manager (certmgr.msc)
Om certificaten te bekijken met de MMC, open de Certificate Manager via je Startmenu en typ certmgr.msc. Dit opent de Windows Certificates MMC. Dit initiële overzicht biedt een overzicht van alle logische stores die worden weergegeven in het linkervenster.
Zoals je kunt zien in de onderstaande schermafbeelding is de Trusted Root Certification Authorities logische store geselecteerd.

Bekijken van Fysieke Stores
Standaard laat de Windows Certificate Manager de werkelijke fysieke stores niet zien. Om de stores weer te geven, klik op Weergave en vervolgens op Opties. Je ziet dan opties om fysieke certificaatstores weer te geven. Door deze optie in te schakelen, wordt het identificeren van de specifieke paden binnen Windows eenvoudiger.

Je ziet nu dat er extra containers worden weergegeven onder de voorbeeld Trusted Root Certification Authorities logische store die eerder werd getoond. De certificaten zijn nog steeds gegroepeerd ten opzichte van hun logische stores, maar je kunt nu de fysieke store “Registry” zien.

Attributen inspecteren in de Windows Certificate Manager
Er zijn veel attributen van een certificaat die je kunt zien wanneer je ze bekijkt met de MMC. Zo wil je waarschijnlijk specifieke certificaten selecteren.
De makkelijkste manier voor jou om dit te bereiken is door te verwijzen naar het serienummer (Serial Number) of de duimafdruk (Thumbprint) van het certificaat. Als het certificaat is ondertekend door een certificaatautoriteit (CA), zal het een serienummer hebben op het moment van uitgifte. De duimafdruk wordt elke keer berekend wanneer het certificaat wordt bekeken.
Je kunt enkele attributen van een certificaat zien door het te openen in de MMC, zoals hieronder te zien is.

Een belangrijk kenmerk om op te wijzen, is ingebedde privésleutels. Certificaten in Windows kunnen ook een overeenkomstige privésleutel hebben. Deze privésleutels worden opgeslagen in overeenkomstige fysieke opslagplaatsen als versleutelde bestanden.
Om snel onderscheid te maken tussen een certificaat met en zonder een overeenkomstige privésleutel, kijk naar het certificaatpictogram. In de Windows-certificaatbeheerder, als het pictogram er eenvoudig uitziet als een stuk papier met een lint, is er geen overeenkomstige privésleutel. Als een certificaat wel een privésleutel heeft, zie je een sleutel in het MMC-pictogram en zie je een sleutel onderaan het tabblad Algemeen wanneer je het certificaat opent.

Met PowerShell
Net als met de MMC kun je certificaten ook bekijken en beheren met PowerShell. Laten we eerst certificaten inspecteren in hun fysieke opslagplaatsen (het register en het bestandssysteem).
Per fysieke opslagplaats
Met de PowerShell-cmdlet Get-ChildItem
kun je alle sleutels en waarden binnen het bovenliggende pad van het register HKCU:\Software\Microsoft\SystemCertificates\CA\Certificates\ doorlopen.
De onderstaande opdracht zal alle certificaten van de momenteel ingelogde gebruiker opsommen in de logische opslagplaats Tussenliggende Certificeringsinstanties.
Elk item in het Registerhive dat je ziet, komt overeen met de Thumbprint van het certificaat voor een vertrouwde CA en het bijbehorende certificaat in de overeenkomstige eigenschap. Hieronder zie je een voorbeeld van de uitvoer.

Een andere veelvoorkomende opslagplaats is de Persoonlijke opslagplaats. Certificaten voor deze opslagplaats bevinden zich op het bestandssysteem in plaats van het Register. In de volgende opdrachten laten we deze verschillende fysieke paden zien en hun doeleinden.
Elk bestand in de directory die wordt weergegeven door de onderstaande opdracht komt overeen met een certificaat dat is geïnstalleerd in de Persoonlijke huidige gebruikersopslagplaats.
Elk bestand dat wordt weergegeven in de onderstaande opdracht is een verwijzing naar het object voor een privésleutel gemaakt door de Key Storage Provider (KSP). De bestandsnaam komt overeen met de Subject Key Identifier van het certificaat. Elke privésleutel die je installeert, krijgt een overeenkomstig bestand toegevoegd.
Elk bestand in de directory die wordt weergegeven door de onderstaande opdracht is de unieke container voor de versleutelde privésleutel gemaakt door de KSP. Er is geen directe relatie tussen de bestandsnaam en het certificaat, maar het bestand is het doelwit van de verwijzing in de eerdere opdracht.
Per Logische Opslagplaats
Sinds het werken met certificaten in hun fysieke paden ongebruikelijk is, zul je voor de rest van de voorbeelden werken met de logische opslagplaatsen.
PowerShell kan Windows-logische opslagplaatsen benaderen met behulp van de Cert:
PSDrive. De Cert:
PSDrive koppelt certificaten aan de fysieke opslagplaatsen, net zoals MMC dat doet.
Helaas labelen MMC en de Cert
PSDrive de logische opslagplaatsen niet op dezelfde manier. Hieronder vind je een vergelijkingstabel van de gangbare opslagplaatsen en hun namen, zowel in de MMC als in de Cert
PSDrive.
Cert: | Certificates MMC |
---|---|
My | Personal |
Remote Desktop | Remote Desktop |
Root | Trusted Root Certification Authorities |
CA | Intermediate Certification Authorities |
AuthRoot | Third-Party Root Certification Authorities |
TrustedPublisher | Trusted Publishers |
Trust | Enterprise Trust |
UserDS | Active Directory User Object |
Selecteren van Certificaten
Wanneer je met certificaten werkt, heb je een manier nodig om certificaten te filteren en selecteren voor specifieke handelingen. Meestal zul je certificaten filteren en selecteren op basis van de waarde van een specifieke extensie.
Voor de volgende voorbeelden moet je beginnen met het weergeven van alle geïnstalleerde certificaten in de root CA-opslagplaats.
De geretourneerde objecten zullen certificaatobjecten zijn die je kunt gebruiken in de volgende voorbeelden.
Gemeenschappelijke extensies zijn al beschikbaar als eigenschappen van de certificaatobjecten. In het onderstaande voorbeeld gebruik je Get-Member
om alle eigenschappen van de geretourneerde objecten op te sommen.

Zoals je kunt zien in Figuur 9, zijn sommige van deze extensies, zoals Issuer, handig om het gezochte certificaat te vinden. Extensies leveren informatie over het certificaat, zoals aan wie het is uitgegeven, waar het voor kan worden gebruikt, en eventuele beperkingen.
In meer complexe gevallen wilt u certificaten vinden met andere extensies, zoals het gebruikte certificaatsjabloon. De moeilijkheid is dat de waarden voor deze extensies terugkomen als een reeks integers. Deze integers komen overeen met ASN.1 gecodeerde inhoud.
De bestaande ScriptProperties die beschikbaar zijn op het object laten voorbeelden zien van de communicatie hiermee. In de onderstaande opdracht haalt u handmatig de sleutelgebruiken op om deze relatie te zien.
Het nieuwe onderdeel dat we introduceren in de bovenstaande opdracht is de format-methode, die de ASN.1-decodering uitvoert. U geeft het een booleaanse waarde mee (bijv. $true) hierboven om aan te geven of het teruggegeven object één regel of meerdere regels moet zijn.
U zult de Thumbprint-waarde gebruiken van het certificaat in Figuur 7 in de onderstaande opdracht. De Thumbprint-waarde wordt ingesteld als een PowerShell-variabele en wordt gebruikt om het specifieke certificaat in de onderstaande opdrachten te selecteren.
Het maken van zelfondertekende certificaten met PowerShell
PowerShell kan zelfondertekende certificaten maken met de New-SelfSignedCertificate
cmdlet. Zelfondertekende certificaten zijn handig voor testdoeleinden omdat ze u in staat stellen om een openbaar en privésleutelpaar te genereren zonder het gebruik van een CA.
Laten we nu een zelfondertekend certificaat maken in de huidige gebruiker en de Local Machine stores om te gebruiken in voorbeelden voor de volgende stappen.
In het onderstaande voorbeeld genereert PowerShell een openbaar en privésleutelpaar, een zelfondertekend certificaat en installeert deze in de juiste certificaatstores.
Het gebruik van zelfondertekende certificaten voor productiediensten wordt niet aangemoedigd, aangezien alle op vertrouwen gebaseerde mechanismen niet bestaan.
Importeren/Exporteren van Certificaten
Openbare sleutel cryptografie is fundamenteel gebaseerd op de wijdverbreide toegankelijkheid van de openbare sleutel. Gezien dit uitgangspunt heeft u standaard manieren nodig om certificaten effectief te delen. Even belangrijk is de beveiliging van uw privésleutels. Het opslaan van privésleutels op ontoegankelijke media, of met materialen voor rampenherstel, is een gangbare praktijk voor bepaalde privésleutels.
Beide vereisen manieren om deze cryptografische objecten in standaardformaten op te slaan. Exporteren biedt de functies om het opslaan van deze objecten uit te voeren en ervoor te zorgen dat ze gebruik maken van algemeen aanvaarde standaardbestandsindelingen. Importeren stelt u in staat om de cryptografische objecten in Windows-besturingssystemen te brengen.
Het gebruik van de Windows-certificaatbeheerder (certmgr.msc)
Het exporteren van certificaten uit de MMC is relatief eenvoudig. Om een certificaat zonder een privésleutel te exporteren, klikt u op het certificaat in de MMC, klikt u op het Alle taken-menu en vervolgens op Exporteren.
Tijdens de export wordt u gevraagd om een bestandsindeling zoals hieronder getoond. De meest voorkomende opties zijn DER of Base-64 gecodeerd.

Exporteren van privésleutels
Om een certificaat met een bijbehorende privésleutel te exporteren, moet u aan twee criteria voldoen; het ingelogde account moet toestemming hebben voor de privésleutel (alleen voor computer certificaten) en de privésleutel moet exporteerbaar zijn gemarkeerd.
Om de machtigingen voor de private sleutels van een lokale computer te verifiëren, kunt u een certificaat met een private sleutel selecteren, Alle taken kiezen en Private sleutels beheren binnen de Certificaten MMC. Het geopende dialoogvenster toont de toegangsbeheeritems voor de private sleutels.

Als aan deze twee of drie voorwaarden is voldaan, kunt u een certificaat selecteren, op Alle taken klikken en vervolgens op Exporteren zoals u dat zou doen met een certificaat met alleen een openbare sleutel. Wanneer geëxporteerd, zou u nu de optie moeten hebben om Ja, de private sleutel exporteren te selecteren zoals hieronder weergegeven.

Wanneer u een private sleutel exporteert in Windows, kunt u het bestand alleen opslaan als een PFX. Deze bestandstypen en coderingsformaten worden uitgebreid beschreven in dit bericht.
Voor de overige instellingen die worden weergegeven in de exportwizard, kunt u de standaardwaarden gebruiken. De onderstaande tabel geeft een snel overzicht van elk.
Setting | Description |
---|---|
Including all certificates in the certification path if possible | Helps with portability of certificate issuers, and includes all pertinent public keys in the PFX |
Delete the private key if the export is successful | Removes the private key from the file and has few common use cases, but one example is to test access to private keys |
Export all extended properties | Will include any extensions within the current certificate, these relate to the certificates [specific settings]( |
Enable certificate privacy | Normally only the private key will be encrypted in the exported PFX file, this setting encrypts the entire contents of the PFX file |
Group or user names | You can use a group or user security principal from Active Directory for encrypting the contents of the PFX file, but a password is the most portable option across legacy systems or computers not joined to the same domain |
Certificaten importeren
De importfunctie is hetzelfde voor alle ondersteunde certificaatbestandstypen. Het enige verschil is dat als het bestand een private sleutel bevat, u deze als exporteerbaar kunt markeren, waarover u hieronder meer zult lezen. Windows zal gebruikmaken van de Wizard Certificaat importeren.

Wanneer u de Wizard Certificaat importeren gebruikt voor een PFX, moet u het wachtwoord opgeven dat is gebruikt om de private sleutel te versleutelen. Hier volgt nogmaals een samenvatting van de importopties.
Setting | Description |
---|---|
Enable strong private key protection | Requires a password for each access of a private key, be cautious of newer functions as they will not be supported in all software |
Mark this key as exportable | You should try to avoid using this setting on any end system, private keys should be treated similarly to storing passwords |
Protect private key using [virtualization-based security] | The setting provides more security functionality for protecting private keys from advanced malware attacks |
Include all extended properties | Relates to the same Windows-specific settings discussed as with exporting |
PowerShell-codeondertekeningscertificaten zijn een goed gebruiksscenario voor sterke privésleutelbeveiliging.
Automatische plaatsing van certificaten kan iets zijn waarvoor u voorzichtig moet zijn. U zult waarschijnlijk de beste resultaten behalen door handmatig het certificaatarchief te selecteren.
Het gebruik van PowerShell
Nu, met PowerShell, exporteert u een van de zelfondertekende certificaten die u eerder hebt gemaakt. In het voorbeeld wordt de huidige gebruiker gebruikt, maar u kunt beide gebruiken.
Hieronder selecteert u een certificaat in de logische opslag van de huidige gebruiker dat zelfondertekend is, wat betekent dat de uitgever overeenkomt met het onderwerp.
Nu u een certificaat heeft geselecteerd, kunt u het Export-Certificate
-commando gebruiken om een DER-gecodeerd bestand op te slaan met het onderstaande commando.
Laten we nu ook kijken naar het exporteren van de privésleutel. Hieronder controleert u of het certificaat dat u hebt geselecteerd een privésleutel heeft. Als dit niet waar retourneert, heeft het Get-Item
-commando waarschijnlijk het verkeerde certificaat geselecteerd.
Hieronder stelt u een wachtwoord in voor het versleutelen van de privésleutel. Exporteer vervolgens het geselecteerde certificaat naar een PFX-bestand en gebruik het eerder ingevoerde wachtwoord om het bestand te versleutelen.
Vergelijkbaar met exporteren, zijn er twee commando’s. Eén commando voor het importeren van certificaten en één voor het importeren van PFX-bestanden.
Hieronder importeert het Import-Certificate
-commando het DER-gecodeerde bestand dat u eerder naar de Persoonlijke winkel van de huidige gebruiker hebt geëxporteerd.
Laten we zeggen dat u ook de privésleutel van dat certificaat wilt installeren.
Houd er rekening mee dat het wachtwoord een Veilige String moet zijn. Bovendien, als u importeert naar de Lokale Machine-winkel (bijv. Cert:\LocalMachine\), moet u het commando uitvoeren vanuit een verhoogde beheerdersprompt.
In het bovenstaande voorbeeld gebruikt u ook de parameter Exporteerbaar bij het commando, waardoor de privésleutel in de toekomst exporteerbaar wordt gemarkeerd. Standaard is dit niet exporteerbaar. Exporteerbare privésleutels zijn nog een beveiligingsoverweging en verdienen verdere aandacht voor hoe u ze beveiligt.
Er zijn ook veel andere dingen die u met certificaten in Windows kunt doen, dus u zou meer moeten verkennen.
Certificaten verwijderen met PowerShell
Wanneer u certificaten verwijdert, moet u in gedachten houden dat er geen Prullenbak is. Zodra u een certificaat verwijdert, is het weg. Dit betekent dat het cruciaal is om te bevestigen dat u het juiste certificaat verwijdert door een unieke identificator te valideren, zoals de serienummer- of vingerafdruk-extensiewaarde.
Vergelijkbaar met hierboven, selecteren we in het onderstaande commando een zelfondertekend certificaat uit de Persoonlijke winkel van de huidige gebruiker.
Hieronder ziet u de vingerafdruk, het serienummer en de onderwerpskenmerken voor het geselecteerde certificaat om ervoor te zorgen dat het het certificaat is dat u van plan bent te selecteren.
Controleer of je het juiste certificaat hebt geselecteerd dat je wilt verwijderen.
De onderstaande opdracht verwijdert alle geselecteerde certificaatobjecten. Gebruik deze alstublieft met voorzichtigheid. Door het $certificate
object via de pijplijn door te geven aan de Remove-Item
cmdlet in de onderstaande opdracht, verwijdert u alle certificaatinhoud zonder enige validatieprompt.
Samenvatting
In dit artikel heb je gewerkt met certificaten in Windows, waarbij je hebt geleerd hoe je toegang krijgt tot hen en enkele tools om mee te werken. Er is nog veel meer te ontdekken over dit onderwerp, waaronder hoe je geïnstalleerde certificaten kunt associëren met specifieke services, of zelfs hoe je een eigen Public Key Infrastructure (PKI) kunt implementeren door je eigen Certificaatautoriteiten (CA) te implementeren.
Verder lezen
Source:
https://adamtheautomator.com/windows-certificate-manager/