Goede dag!
We hebben met succes ons eigen certificeringscentrum gecreƫerd. Hoe kan het nuttig zijn voor onze doeleinden?
Met behulp van een lokale certificeringsinstantie kunnen we certificaten uitgeven en ook de handtekeningen op deze certificaten verifiƫren.
Bij het verstrekken van een certificaat aan een gebruiker maakt de certificeringsinstantie gebruik van een speciaal certificaatverzoek Pkcs#10, dat het bestandsformaat '.csr' heeft. Dit verzoek bevat een gecodeerde reeks die de certificeringsinstantie correct weet te parseren. Het verzoek bevat zowel de publieke sleutel van de gebruiker als gegevens voor het aanmaken van een certificaat (een associatieve array met gegevens over de gebruiker).
In het volgende artikel zullen we bekijken hoe we een certificaataanvraag kunnen ontvangen, en in dit artikel wil ik de belangrijkste opdrachten van de certificeringsinstantie geven die ons zullen helpen onze taak aan de backend-kant te voltooien.
We moeten dus eerst een certificaat aanmaken. Om dit te doen gebruiken we het commando:
openssl ca -batch -in user.csr -out user.crt ca is het openSSL-commando dat betrekking heeft op de certificeringsinstantie,
-batch - annuleert bevestigingsverzoeken bij het genereren van een certificaat.
user.csr - verzoek om een āācertificaat aan te maken (bestand in .csr-formaat).
user.crt - certificaat (resultaat van de opdracht).
Om deze opdracht te laten werken, moet de certificeringsinstantie precies zoals beschreven worden geconfigureerd . Anders moet u bovendien de locatie van het rootcertificaat van de certificeringsinstantie opgeven.
Commando voor certificaatverificatie:
openssl cms -verify -in authenticate.cms -inform PEM -CAfile /Users/ā¦ā¦/demoCA/ca.crt -out data.filecms is een openSSL-opdracht die wordt gebruikt voor het ondertekenen, verifiĆ«ren, coderen van gegevens en andere cryptografische bewerkingen met behulp van openSSL.
-verify - in dit geval verifiƫren we het certificaat.
authenticate.cms - een bestand met gegevens ondertekend met het certificaat dat is uitgegeven door de vorige opdracht.
-informeer PEM - PEM-formaat wordt gebruikt.
-CAfile /Users/ā¦ā¦/demoCA/ca.crt - pad naar het rootcertificaat. (zonder dit werkte het commando niet voor mij, hoewel de paden naar ca.crt in het bestand openssl.cfg waren geschreven)
-out data.file ā Ik stuur de gedecodeerde gegevens naar het bestand data.file.
Het algoritme voor het gebruik van een certificeringsinstantie aan de backend-kant is als volgt:
- Gebruikersregistratie:
- We ontvangen een verzoek om een āācertificaat aan te maken en dit op te slaan in het user.csr-bestand.
- We slaan de eerste opdracht van dit artikel op in een bestand met de extensie .bat of .cmd. We voeren dit bestand uit vanuit code, nadat we eerder het verzoek om een āācertificaat te maken hebben opgeslagen in het bestand user.csr. We ontvangen een bestand met het user.crt-certificaat.
- We lezen het user.crt-bestand en sturen het naar de klant.
- Autorisatie van gebruiker:
- We ontvangen ondertekende gegevens van de klant en slaan deze op in het authenticate.cms-bestand.
- Sla de tweede opdracht van dit artikel op in een bestand met de extensie .bat of .cmd. We voeren dit bestand uit vanuit de code, nadat we eerder de ondertekende gegevens van de server hebben opgeslagen in authenticate.cms. We ontvangen een bestand met gedecodeerde gegevens data.file.
- We lezen data.file en controleren deze gegevens op geldigheid. Wat u precies moet controleren, wordt beschreven . Als de gegevens geldig zijn, wordt de gebruikersautorisatie als succesvol beschouwd.
Om deze algoritmen te implementeren, kunt u elke programmeertaal gebruiken die wordt gebruikt om de backend te schrijven.
In het volgende artikel bekijken we hoe u met de Retoken-plug-in kunt werken.
Dank je wel!
Bron: www.habr.com
