Het genereren van SSL-certificaten kan een ontmoedigende taak zijn, gevuld met frustratie en verdriet. Maar dat hoeft niet zo te zijn! Als je Windows 10 hebt en OpenSSL samen met een beetje hulp van deze tutorial, ben je goed op weg.
In dit artikel ga je leren hoe je OpenSSL installeert op Windows 10. Eenmaal geïnstalleerd, ga je SSL-certificaten genereren, certificaten oplossen en debuggen, en converteren tussen formaten.
Laten we beginnen met het beheersen van OpenSSL op Windows 10 met PowerShell!
Gerelateerd: Certs beheren met Windows Certificate Manager en PowerShell
Vereisten
In dit artikel ga je aan de slag met een praktische aanpak. Hoewel OpenSSL historisch gezien een hulpprogramma is voor Linux-besturingssystemen, kun je het ook gebruiken met Windows-besturingssystemen.
- A Windows system with Local Administrator rights – The tutorial will be using Windows 10
- Windows PowerShell 5.1 (wordt geleverd met Windows) of PowerShell 7
- Chocolatey – Een pakketbeheerder voor Windows geïnstalleerd.
- PowerShell ISE, Visual Studio Code of een teksteditor naar keuze
Alle schermafbeeldingen in deze handleiding zijn gemaakt op Windows 10 build 1909 en PowerShell 7.
OpenSSL installeren op Windows 10 met PowerShell en Chocolatey
Als u Chocolatey hebt geïnstalleerd met behulp van de installatie-instructies, is uw eerste taak het installeren van OpenSSL op Windows 10. Open uw PowerShell-console en voer het volgende commando uit: choco install OpenSSL.Light
, zoals hieronder weergegeven.

En dat is het! U heeft nu OpenSSL geïnstalleerd met PowerShell.
Stel een werkmap in
Deze tutorial zal een paar certificaten aanmaken om van te leren. Om ervoor te zorgen dat al het werk dat u hier doet beperkt blijft tot één map die u later kunt opruimen, kunt u nu een map aanmaken.
In deze tutorial worden alle certificaten en gerelateerde bestanden opgeslagen in de map C:\certs. U kunt een map aanmaken met PowerShell door het onderstaande commando uit te voeren.
Nu is het tijd om OpenSSL te configureren.
OpenSSL configureren
Standaard wordt OpenSSL op Windows 10 geleverd zonder een configuratiebestand. Dit is met opzet, omdat er veel configuratieopties zijn die u kunt aanpassen. Voor deze handleiding gaat u een voorbeeldconfiguratie gebruiken die u later kunt aanpassen aan uw beveiligingseisen.
Open PowerShell en voer het onderstaande commando uit. Dit commando downloadt een voorbeeldconfiguratiebestand van MIT en slaat het op als openssl.cnf in de huidige werkmap.
U kunt nu het bestand openssl.cnf openen en u zou iets moeten zien dat eruitziet als hieronder.

De gedownloade configuratie zal voorlopig werken zoals het is. Gebruik de standaardinstellingen niet in een productieomgeving!
Werk de omgevingsvariabelen van het PowerShell-profiel bij
Om alles soepel te laten verlopen, moet je je PowerShell-profiel op Windows 10 aanpassen. Door enkele omgevingsvariabelen in te stellen, kun je eenvoudig wisselen tussen verschillende versies van OpenSSL die je mogelijk hebt geïnstalleerd.
I suggest adding two environment variables to your PowerShell profile called path
and OPENSSL_CONF
. You will update the PATH
environment variable to ensure you can run the openssl binary in any location while on the command line.
Hieronder zie je hoe je een PowerShell-profiel kunt maken als je er nog geen hebt. Met deze opdracht voeg je het pad naar de OpenSSL-binaries toe aan je PATH
en wijs je het pad naar het configuratiebestand toe aan OPENSSL_CONF
.
Om de omgevingsvariabelen te gebruiken, laad je je profiel opnieuw door . $profile
in te typen of gewoon PowerShell af te sluiten en opnieuw te openen.
Nu kun je eenvoudig het openssl binary aanroepen waar je ook bent in PowerShell, zoals hieronder wordt getoond.

OpenSSL gebruiken op Windows 10 om een CSR en een privésleutel te genereren
Voordat u een SSL-certificaat kunt maken, moet u een certificaataanvraag (CSR) genereren. Een CSR is een gecodeerd bestand dat u de mogelijkheid biedt om uw openbare sleutel te delen met een certificaatautoriteit (CA). Dit bestand bevat identificatiegegevens, een handtekeningsalgoritme en een digitale handtekening. Laten we uw eerste CSR en privésleutel maken.
Gerelateerd: Uw gids voor X509-certificaten voor stervelingen
Om een CSR te maken, voert u de onderstaande opdracht uit. OpenSSL zal u vervolgens vragen om enkele identificatiegegevens in te voeren, zoals u kunt zien in de volgende demonstratie.

Zodra dit is voltooid, heeft u een geldige CSR en privésleutel die gebruikt kunnen worden om een SSL-certificaat aan u te verstrekken.
De standaardconfiguratiebestanden kunnen verder worden bewerkt om dit proces te stroomlijnen, mocht u niet telkens gegevens willen invoeren bij het genereren van een CSR.
U kunt meer lezen over de beschikbare CSR-opties en voorbeeldconfiguraties bekijken in de handleiding. OpenSSL heeft ook een actieve GitHub-opslagplaats met voorbeelden.
Het genereren van RSA-sleutelparen
U kunt ook RSA-sleutelparen (openbaar/privé) maken met OpenSSL. Om dit te doen, maakt u eerst een privésleutel met behulp van de subopdracht genrsa
, zoals hieronder weergegeven.
Wanneer u de onderstaande opdracht uitvoert, zal OpenSSL op Windows 10 een RSA-privésleutel genereren met een sleutellengte van 2048 bits. Deze sleutel wordt bijna onmiddellijk gegenereerd op moderne hardware. De resulterende sleutel wordt uitvoer in de werkmap.
Vervolgens genereert u een openbare sleutel met behulp van de zojuist gemaakte privésleutel met de rsa
subopdracht. De onderstaande syntaxis maakt een openbare sleutel genaamd rsa.public in de werkmap vanuit de privésleutel rsa.private.
Het genereren van een zelfondertekend certificaat
Soms moet u mogelijk een zelfondertekend certificaat genereren. Zelfondertekende certificaten zijn prima voor gebruik in een laboratorium, maar het is geen veilige praktijk om ze te gebruiken in een productieomgeving.
Laten we een zelfondertekend certificaat maken voordat we verder gaan met de volgende taak. Voer hiervoor de onderstaande opdracht in om een X509 SSL-certificaat te maken. Dit certificaat zal gebruikmaken van SHA256-cryptografie en zal geldig zijn voor 365 dagen met een RSA-sleutellengte van 2048 bits. Het certificaat wordt opgeslagen in de werkmap.
U bent nu klaar om het certificaat te importeren in een browser of server.
Valideren van CSRs, certificaten en sleutels met OpenSSL
Het controleren van informatie in een CSR, privésleutel, certificaat of PKCS#12 kan tijd besparen bij het oplossen van SSL-fouten. Soms kan er bijvoorbeeld een verkeerde sleutel zijn gebruikt om een certificaat te maken. Mogelijk hebt u ook onjuiste identificatiegegevens in het certificaat.
Laten we beginnen met het controleren van een CSR met behulp van het req
-commando en enkele parameters:

Details zoals het land, de organisatienaam en het e-mailadres dat u hebt ingevoerd bij het maken van de CSR aan het begin van deze handleiding, moeten exact overeenkomen.
U kunt ook een certificaat controleren met behulp van de x509
-subopdracht met een paar parameters:

Certificaten converteren met OpenSSL
Er zijn situaties waarin een toepassing geen specifiek certificaatformaat gebruikt. U kunt dit probleem bijvoorbeeld tegenkomen bij een toepassing genaamd HAproxy, die een PEM-certificaat vereist terwijl u mogelijk een certificaat in DER-indeling hebt (.crt .cer .der).
Om het converteren van een certificaat te demonstreren, converteren we het eerder gemaakte zelfondertekende certificaat naar een DER-indeling (certificate.crt) naar PEM. Gebruik de code in de volgende codefragment om dit te doen.
De onderstaande opdracht gebruikt de x509
-subopdracht met de parameter -inform
die overeen moet komen met het formaat van het invoerbestand -in
, gevolgd door het uitvoerformaat -out
.
U kunt ook de volgorde omkeren als u de DER-indeling vanuit PEM wilt hebben, zoals hieronder wordt getoond.
En tot slot kunt u PKCS#12 converteren naar PEM en PEM naar PKCS#12. Dit is een bestandstype dat privésleutels en certificaten bevat. Gebruik de subopdracht pkcs12
om te converteren naar PEM-indeling.
U kunt ook een PEM-certificaat en privésleutel naar PKCS#12-indeling converteren met behulp van -export
en een aantal extra opties. Hieronder exporteert u een certificaat in PKCS#12-indeling met behulp van uw privésleutel en met SomeCertificate.crt
als invoerbron. Met de optiewaarde -certfile
MyCACert.crt
kunt u SomeCertificate.crt
valideren.
Foutopsporing en probleemoplossing
Nu u CSR’s, certificaten en sleutelparen kunt maken en converteren, is het tijd om te leren hoe u problemen kunt opsporen en oplossen. OpenSSL wordt geleverd met commando’s waarmee u eenvoudig problemen kunt oplossen.
OpenSSL stelt u ook in staat om certificaten te controleren op bestandsintegriteit en te testen op mogelijke gegevenscorruptie. Met behulp van een MD5-controlegetal kunt u de volgende codevoorbeelden gebruiken om certificaten, sleutels en CSR’s te testen:
Zodra u de oorspronkelijke hash heeft, kunt u deze vergelijken met een huidige hash om te controleren of het certificaat niet is gewijzigd of beschadigd.
Hier is een voorbeeld van hoe die code eruit ziet wanneer het wordt uitgevoerd in PowerShell:

Samenvatting
In dit artikel heb je geleerd hoe je OpenSSL kunt installeren en configureren op Windows 10, een CSR, sleutelpaar en SSL-certificaat kunt maken. Je hebt ook geleerd hoe je kunt converteren tussen verschillende certificaatformaten en enkele basisproblemen kunt oplossen met behulp van ingebouwde subcommando’s.