Certificate Signing Requests (CSR's) spelen een cruciale rol in webbeveiliging en encryptie. Ze zijn essentieel voor het verkrijgen van een Secure Socket Layer (SSL) of Transport Layer Security (TLS) certificaat van een certificeringsinstantie (CA) . Deze blog leidt u door het proces van het begrijpen en genereren van een CSR, waarbij het belang ervan voor het waarborgen van webbeveiliging wordt benadrukt.
Wat is een MVO?
Bij het aanvragen van een SSL-certificaat bij een certificeringsinstantie wordt een blok versleutelde tekst, een zogenaamd Certificate Signing Request (CSR), verzonden . Dit CSR wordt doorgaans gegenereerd op de server waar het certificaat zal worden geïnstalleerd. Het bevat informatie over het certificaat, zoals de organisatienaam, de algemene naam (domeinnaam), de locatie en het land. Daarnaast bevat het de publieke sleutel die zal worden gebruikt om het certificaat te ondertekenen.
Waarom zijn MVO's belangrijk?
CSR's fungeren als een schakel tussen de entiteit die het SSL-certificaat aanvraagt en de certificeringsinstantie (CA) die het uitgeeft. Door een CSR te genereren, creëert u twee essentiële elementen. Het eerste is de publieke sleutel , die in de CSR is opgenomen. Het tweede is de privésleutel, die tegelijk met de CSR wordt gegenereerd en op uw server blijft staan. De privésleutel moet geheim worden gehouden, omdat deze de server in staat stelt informatie te authenticeren en te decoderen zodra het SSL-certificaat operationeel is.
Overzicht van Luna Cloud HSM van Thales: kenmerken en voordelen
Luna Cloud HSM is een hardwarebeveiligingsmodule (HSM) van Thales. De toevoeging "Cloud HSM" geeft aan dat het een cloudgebaseerde oplossing is. U kunt er via internet toegang toe krijgen als een service, in plaats van een HSM fysiek in uw datacenter te installeren en te beheren. De Luna Cloud HSM maakt deel uit van de CipherTrust Cloud Key Manager-service van Thales.
Een HSM is een speciaal hardwareapparaat met gespecialiseerde cryptografische processoren, ontworpen om digitale sleutels te beheren en cryptografische bewerkingen uit te voeren. Ze bieden een veilige omgeving waarin u encryptiesleutels kunt genereren, beheren en gebruiken, en houden deze geïsoleerd van andere systeemonderdelen voor een betere beveiliging. HSM's worden doorgaans gebruikt om de meest gevoelige digitale activa van een organisatie te beveiligen.
De Luna Cloud HSM combineert het beste van de cloud met HSM: schaalbaarheid, toegankelijkheid en lagere initiële kosten. U krijgt de beveiliging van een traditionele HSM met de extra voordelen van een cloudservice.
De belangrijkste kenmerken van Luna Cloud HSM zijn:
-
Robuuste beveiliging
Luna Cloud HSM maakt gebruik van de krachtige encryptie- en sleutelbeheermogelijkheden van Thales en biedt daarmee een van de hoogste niveaus van gegevensbescherming in de cloud. De HSM's zijn fraudebestendig en bieden een veilige omgeving voor cryptografische bewerkingen.
-
Schaalbaarheid
Naarmate uw cryptografische behoeften toenemen, kan Luna Cloud HSM eenvoudig meeschalen. U hoeft zich geen zorgen te maken over de aanschaf en installatie van extra HSM-hardware.
-
Hoge beschikbaarheid
Luna Cloud HSM biedt hoge beschikbaarheid en automatische failovermogelijkheden om de bedrijfscontinuïteit te garanderen. U kunt HSM's in meerdere regio's implementeren om lokale uitval te beperken.
-
Compliant
Luna Cloud HSM helpt u te voldoen aan de wettelijke normen voor cryptografische bewerkingen en sleutelbeheer, waaronder PCI-DSS , GDPR en HIPAA . De service biedt uitgebreide audit- en logboekfuncties.
-
Interoperabiliteit
Luna Cloud HSM ondersteunt een breed scala aan cryptografische API's, bibliotheken en integraties, zoals PKCS#11, Java (JCE), Microsoft CryptoAPI en Microsoft CNG, waardoor het compatibel is met een breed scala aan applicaties en services.
Bekijk hier ook de lijst met ondersteunde clientplatformen voor Luna Cloud HSM.
Hoe genereer ik een CSR?
Het genereren van een CSR kan verschillen, afhankelijk van de software die u gebruikt, maar de kernstappen blijven hetzelfde. Hier is een algemene schets van het proces:
-
Voorbereiding
U moet over alle relevante gegevens beschikken voordat u uw CSR genereert. Dit omvat uw domeinnaam, organisatienaam, plaatsnaam, staat of provincie en landcode.
-
Genereer een sleutelpaar
De eerste stap bij het genereren van een CSR is het aanmaken van een openbaar-privé sleutelpaar. Onthoud dat uw privésleutel veilig binnen de server of hardwaremodule moet blijven die deze genereert.
-
Genereer de CSR
Gebruik een tool voor het genereren van een CSR die is afgestemd op uw serversoftware. Deze tool vraagt u om de gegevens die u in stap 1 hebt verzameld en de persoonlijke sleutel die u in stap 2 hebt gegenereerd. De tool genereert vervolgens een gecodeerd bestand met de extensie .csr of .req.
Tijdens het genereren van het CSR wordt u gevraagd uw gegevens in te voeren (algemene naam, organisatie, plaats, enz.).
CSR genereren vanuit Luna HSM
We gaan een CSR genereren op Thales DPoD. Daarom moeten we eerst de Application Owner Configuration uitvoeren, wat betekent dat we een client moeten toevoegen en configureren.
De clientinstallatie gebruikt een .zip-bestand (Windows) of een .tar-bestand (Linux) om de benodigde clientmaterialen te leveren voor het configureren van de verbinding van uw systeem met de Luna Cloud HSM-service . Het client-zipbestand bevat een vooraf geconfigureerd crystoki-template.ini-bestand en een clientarchiefbestand met een bibliotheek en binaire bestanden.
De Service Client installeren
-
Ga naar de Servicepagina en klik op de service of partitienaam waarvoor u een client wilt genereren.

-
Klik op Nieuwe serviceclient – het venster Serviceclient maken wordt weergegeven.

-
Voer in het venster Serviceclient maken een clientnaam in (bijvoorbeeld Pega-Macro) en selecteer Serviceclient maken.

De geïnstalleerde serviceclient configureren
- Een nieuwe klant (in dit geval, setup-PKI-Luna.zip) wordt gegenereerd en is beschikbaar voor downloaden en installeren op uw clientcomputer.
- De client is een zipbestand met systeeminformatie die nodig is om uw machine te verbinden met een HSM-partitie. Zie de sectie Clientinhoud voor meer informatie over de clientinhoud.
- Zet de client over naar uw computer. U kunt de client overzetten via SCP, PSCP, WinSCP, FTPS of andere beveiligingstools.
- Pak het bestand uit met behulp van de Windows GUI of een unzip-tool: setup-PKI-Luna.zip.
- Pak het bestand cvclient-min.zip uit.
- Pak het bestand cvclient-min.zip uit in de map die u in de vorige stap hebt aangemaakt. Deze locatie is vereist voor de opdracht setenv in stap 7. Pak het bestand niet uit in een nieuwe cvclient-min.zip-map.
-
Stel de omgevingsvariabele in. Open een opdrachtprompt voor beheerders – klik met de rechtermuisknop op Opdrachtprompt en selecteer Als administrator uitvoeren. Voer het volgende uit in de opdrachtprompt voor beheerders:

De SafeNet Key Storage Provider (KSP) configureren
-
Het systeem vereist toegang tot de SafeNet Key Storage Provider (KSP). Kopieer het bestand SafeNetKSP.dll vanuit de gedownloade Luna Cloud HSM Service Client naar C:\\Windows\System32.
Let op: Als u het bestand SafeNetKSP.dll niet kopieert, krijgt u tijdens de integratie geen toegang tot de SafeNet Key Storage Providers. Als u bijvoorbeeld Microsoft Active Directory Certificate Services configureert, zijn de SafeNet Key Storage Providers niet beschikbaar als optie bij het instellen van de cryptografie voor de CA.
- Voer KspConfig.exe uit
- Navigeer naar de KSP-installatiemap.
- Dubbelklik op Registreer of bekijk de beveiligingsbibliotheek.
-
Klik op Bladeren . Selecteer het bestand cryptoki.dll uit de Luna Cloud HSM Service Client.
Klik op Registreren.

-
Na een succesvolle registratie verschijnt het bericht ' Succes!' . Klik op OK.

- Dubbelklik op HSM-slots registreren.
-
Registreer de HSM voor de beheerder. Open hiervoor het vervolgkeuzemenu ' Registreren voor gebruiker' en selecteer 'Beheerder'; open het vervolgkeuzemenu 'Domein ' en selecteer uw domein. Open het vervolgkeuzemenu ' Beschikbare slots' , selecteer het servicelabel, voer het slotwachtwoord in en klik op 'Slot registreren'.

-
Na een succesvolle registratie verschijnt het bericht ' Succes!' . Klik op OK.

-
Registreer de HSM voor de systeemgebruiker. Open het dropdownmenu 'Registreren voor gebruiker' en selecteer 'SYSTEEM', 'Domein' en 'NT AUTHORITY'. Open het dropdownmenu 'Beschikbare slots', selecteer het servicelabel, voer het slotwachtwoord in en klik op 'Slot registreren'.

-
Bij succesvolle registratie verschijnt het bericht 'Geslaagd!'. Klik op OK.

Het CSR genereren in de Service Client
-
Maak een bestand met de naam request.inf en vul het met de volgende gegevens om een aanvraag te genereren voor een SSL-certificaat dat is gekoppeld aan een RSA- sleutel. De inhoud is als volgt:
[Version]
Signature = "$Windows NT$"
[NewRequest]
Subject = "C=US, S=Dallas, L=Texas, O=Encryption Consulting LLC, OU=Dev, [email protected], CN=ECIssued"
HashAlgorithm = SHA256
KeyAlgorithm = RSA
KeyLength =2048
ProviderName = "Safenet Key Storage Provider"
KeyUsage = 0xf0
MachineKeySet =True
[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.
Let op: De algemene naam (CN) van het onderwerp is willekeurig gekozen voor dit verzoek en kan worden gewijzigd.
De parameters zijn:
-
Signature
“$Windows NT$” geeft aan dat het INF-bestand bedoeld is voor gebruik met Windows NT en latere versies van Windows.
-
Onderwerp
- C - Definieert de tweeletterige landnaam voor de DN (Distinguished Subject Name) van de certificaataanvraag. Deze parameter moet aanwezig zijn in de DN van het onderwerp.
- S - Definieert de statusnaam voor de DN (Distinguished Subject Name) van de certificaataanvraag. Deze parameter moet aanwezig zijn in de DN van het onderwerp.
- L - Definieert de locatie (meestal de stad) voor de DN van het certificaataanvraagonderwerp. Deze parameter kan aanwezig zijn in de DN van het onderwerp.
- O - Definieert de organisatienaam voor de DN (Distinguished Subject Name) van de certificaataanvraag. Deze parameter moet aanwezig zijn in de DN van het onderwerp.
- OF - Definieert de naam van de organisatie-eenheid voor de DN (Distinguished Subject Name) van de certificaataanvraag. Deze parameter kan aanwezig zijn in de DN van het onderwerp.
- en - is het officiële e-mailadres of contact-e-mailadres van de certificeringsinstantie.
- CN- Definieert de algemene naam voor de DN (Distinguished Subject Name) van de certificaataanvraag. Deze parameter moet aanwezig zijn in de DN van het onderwerp.
-
Hash-algoritme
SHA256 stelt het hash-algoritme in op SHA256, een standaard en veilige keuze.
-
Sleutelalgoritme
RSA stelt het sleutelalgoritme in op RSA, een veelgebruikt algoritme voor openbare sleutels.
-
Sleutellengte
2048 stelt de lengte van de sleutel in op 2048 bits. Dit is de huidige industriestandaard voor RSA-sleutels.
-
Provider naam
“SafeNet Key Storage Provider” geeft aan welke cryptografische serviceprovider (CSP) gebruikt moet worden. Een CSP is een softwarebibliotheek die cryptografische functies implementeert. In dit geval wordt de SafeNet Key Storage Provider gebruikt.
-
Sleutelgebruik
0xf0 specificeert het doel van de sleutel in het certificaat. De hexadecimale waarde 0xf0 komt overeen met de binaire waarde 11110000, die staat voor het gebruik van digitale handtekeningen (0x80), sleutelcodering (0x20), gegevenscodering (0x10) en sleutelovereenkomsten (0x08).
-
MachineKeySet
True geeft aan dat de persoonlijke sleutel is opgeslagen in het certificaatarchief van de lokale computer en niet in dat van de huidige gebruiker.
-
EnhancedKeyUsageExtension
OID=1.3.6.1.5.5.7.3.1 is een object-ID (OID) die een gebruik voor het certificaat specificeert. OID 1.3.6.1.5.5.7.3.1 staat voor "Serverauthenticatie", wat betekent dat het certificaat bedoeld is voor het authenticeren van servers in SSL/TLS-communicatie.
-
- Open een nieuw opdrachtpromptvenster als beheerder. Dit doet u door te zoeken naar "cmd" in het menu Start, met de rechtermuisknop op Opdrachtprompt te klikken en "Als administrator uitvoeren" te selecteren.
- Navigeer naar het pad waar requested.inf staat en druk op Enter.
-
Genereer nu de certificaataanvraag met de volgende opdracht:
certreq -new request.inf request.req
Met deze opdracht wordt een nieuw Certificate Signing Request (CSR)-bestand met de naam `request.req` aangemaakt, gebaseerd op de configuratie in uw bestand `request.inf`. U kunt dit CSR-bestand naar een certificeringsinstantie (CA) voor uw SSL-certificaat sturen.
Onderteken de CSR met Microsoft CA
Er zijn twee verschillende manieren om een CSR te ondertekenen:
Certificaataanvraag accepteren
-
Draag het CSR-bestand over aan de uitgevende CA en voer de opdracht uit:
certreq -submit -attrib "CertificateTemplate:<Template Name>" "C:\MacroSign.csr"Hier is sjabloonnaam = "EncryptionConsuCodeSigning"

-
Nadat u de certificeringsinstantie uit de lijst met certificeringsinstanties hebt geselecteerd, slaat u het certificaat op met een geschikte naam. (Bijvoorbeeld: ECMacro, de extensie moet .crt of .cer zijn.)

-
Na succesvolle uitvoering vindt u het certificaat in de sectie 'Uitgegeven certificaten' bij de certificeringsinstantie.

-
Controleer of "Code Signing" is opgenomen in het attribuut " Enhanced Key Usage " van het zojuist gegenereerde certificaat.

Via webinschrijving
-
De beschikbare sjablonen in de certificeringsinstantie

-
Voer nu de webregistratie uit nadat u een sjabloon hebt geselecteerd – “Code Signing” (in ons geval: https://ca02.encon.com/certsrv/ ).

-
Nadat je 'Een certificaat aanvragen' hebt geselecteerd , verschijnt dit scherm. Selecteer 'Geavanceerde certificaataanvraag' . (In ons geval: https://ca02.encon.com/certsrv/certrqus.asp )

-
Plak de inhoud van de CSR in het veld 'Opgeslagen aanvraag' en selecteer 'Codeondertekening' in de certificaatsjabloon . Klik daarna op 'Verzenden'.

-
U krijgt dan twee opties te zien: 'Certificaat downloaden' en 'Certificaatketen downloaden' . Kies de laatste optie om de certificaatketen naar uw lokale systeem te downloaden.

-
Zo ziet de certificaatketen eruit.

De persoonlijke sleutel toevoegen aan het certificaat
-
Het certificaat accepteren en installeren, zodat het beschikbaar is in de Windows-omgeving.

-
Voeg vervolgens het certificaat toe aan de 'Persoonlijke' certificaten van Certificaten - Lokale computer met behulp van de volgende opdracht:
certutil -store MY “<thumbprint of the certificate>”
Problemen oplossen
-
Om de lijst met CA-sjablonen in de uitgevende CA te controleren:
certutil -CATemplates
-
Als de persoonlijke sleutel niet aan het certificaat is gekoppeld, probeer dan deze opdracht 'repairstore'

-
De CSP/KSP-registratie mislukt in Windows.
CSP/KSP-registraties kunnen mislukken als Windows Update ontbreekt, omdat Windows Update een stap bevat die verifieert dat de DLL's zijn ondertekend door het certificaat van Thales dat terug te voeren is op de DigiCert root of trust G4 (in overeenstemming met de industriële beveiligingsnormen).
Deze stap kan alleen slagen als uw Windows-besturingssysteem over het vereiste certificaat beschikt. Als uw Windows-besturingssysteem is bijgewerkt, zou u dat certificaat al moeten hebben.
Als uw Luna HSM Client-host is verbonden met internet, gebruikt u de volgende opdrachten om het certificaat handmatig bij te werken:
certutil -urlcache -f http://cacerts.digicert.com/DigiCertTrustedRootG4.crt DigiCertTrustedRootG4.crt
certutil -addstore -f root DigiCertTrustedRootG4.crtEen niet-verbonden host handmatig bijwerken
- Download de DigiCert Trusted Root G4 (http://cacerts.digicert.com/DigiCertTrustedRootG4.crt DigiCertTrustedRootG4.crt) naar een aparte computer met internetverbinding.
- Transporteer het certificaat met behulp van uw goedgekeurde middelen naar de Luna Client-host in een locatie naar keuze
-
Voeg het certificaat toe aan het certificaatarchief met de opdracht:
certutil -addstore -f root <downloaded cert path>
-
Als het onderwerp van het certificaatverzoek niet op het certificaat zelf staat, probeer dan de volgende stappen.
- Open de console met certificaatsjablonen: Open op de AD CS-server de console met certificaatsjablonen door `certtmpl.msc` uit te voeren in het dialoogvenster Uitvoeren (Win + R).
- Een bestaande sjabloon dupliceren: Het is over het algemeen een beter idee om een bestaande sjabloon te dupliceren dan deze te wijzigen. Zoek een sjabloon die lijkt op wat u zoekt, klik er met de rechtermuisknop op en selecteer 'Sjabloon dupliceren'.
-
De sjabloon configureren: In het eigenschappenvenster voor de nieuwe sjabloon kunt u verschillende instellingen configureren. Om de velden Sleutelgebruik en Uitgebreid sleutelgebruik in te stellen:
Sleutelgebruik: Ga naar het tabblad 'Extensies', selecteer 'Sleutelgebruik' in de lijst en klik op 'Bewerken'. Hier kunt u de sleutelgebruiken selecteren die u wilt opnemen, zoals 'Digitale handtekening', 'Sleutelversleuteling', enzovoort.
Verbeterd sleutelgebruik: Selecteer op het tabblad 'Extensies' de optie 'Toepassingsbeleid' en klik op 'Bewerken'. Hier kunt u het verbeterde sleutelgebruik toevoegen dat u wilt gebruiken, zoals 'Codeondertekening', 'Serververificatie', enzovoort.
- Sjabloon opslaan: Nadat u de sjabloon naar wens hebt geconfigureerd, geeft u deze een naam en slaat u deze op.
- Sjabloon uitgeven: De nieuwe sjabloon is nu beschikbaar, maar moet worden uitgegeven voordat deze kan worden gebruikt. Klik in de console van de certificeringsinstantie (`certsrv.msc`) met de rechtermuisknop op `Certificaatsjablonen`, selecteer `Nieuw`, vervolgens `Te verstrekken certificaatsjabloon` en selecteer uw nieuwe sjabloon.
Als u een certificaat wilt vereisen met behulp van deze sjabloon, moet u de velden Sleutelgebruik en Uitgebreid sleutelgebruik opnemen zoals u ze hebt geconfigureerd.
Conclusie
Zodra de CSR is aangemaakt, kan deze worden gebruikt om een SSL-certificaat aan te vragen bij een certificeringsinstantie. De gegevens van de CSR worden door de certificeringsinstantie gebruikt om het certificaat te genereren, waardoor de beveiliging van uw website en de veilige overdracht van informatie worden gewaarborgd.
Hoewel de procedures en protocollen misschien ingewikkeld lijken, is het gebruik van een SSL-certificaat om uw website te beveiligen essentieel om het vertrouwen van bezoekers te winnen en belangrijke informatie te beschermen. Een CSR is essentieel om ervoor te zorgen dat de juiste gegevens in uw SSL-certificaat staan.
