Het verkrijgen van een SSL-certificaat van een van de grote certificeringsinstanties (CA's) kan $ 100 en hoger kosten. Voeg daar nog nieuwsberichten aan toe die erop lijken te wijzen dat niet alle gevestigde CA's 100% van de tijd te vertrouwen zijn en u zou kunnen besluiten de onzekerheid te omzeilen en de kosten te wissen door uw eigen certificeringsinstantie te zijn.
Stappen
Deel 1 van 4: Uw CA-certificaat maken
Stap 1. Genereer de privésleutel van uw CA door de volgende opdracht te geven
-
openssl genrsa -des3 -out server. CA.key 2048
-
De opties uitgelegd
- openssl - de naam van de software
- genrsa - maakt een nieuwe privésleutel
- -des3 - versleutel de sleutel met het DES-cijfer
- -out server. CA.key - de naam van uw nieuwe sleutel
- 2048 - de lengte, in bits, van de privésleutel (zie de waarschuwingen)
- Bewaar dit certificaat en het wachtwoord op een veilige plaats.
Stap 2. Maak een certificaatondertekeningsverzoek aan
-
openssl req -verbose -new -key server. CA.key -out server. CA.csr -sha256
-
De opties uitgelegd:
- req - Maakt een ondertekeningsverzoek
- -verbose - toont u details over het verzoek terwijl het wordt gemaakt (optioneel)
- -new - maakt een nieuw verzoek aan
- -key server. CA.key - De persoonlijke sleutel die u zojuist hierboven hebt gemaakt.
- -out server. CA.csr - De bestandsnaam van het ondertekeningsverzoek dat u aan het maken bent
- sha256 - Het coderingsalgoritme dat moet worden gebruikt voor ondertekeningsverzoeken (Als u niet weet wat dit is, verander dit dan niet. U moet dit alleen wijzigen als u weet wat u doet)
Stap 3. Vul de gegevens zo volledig mogelijk in
-
Landnaam (2-letterige code) [AU]:
ons
-
Naam staat of provincie (volledige naam) [Some-state]:
CA
-
Plaatsnaam (bijv. stad) :
Siliconen vallei
-
Naam organisatie (bijv. bedrijf) [Internet Widgits Pty Ltd]:
wikiHow, Inc.
- Naam organisatie-eenheid (bijv. sectie) :
-
Algemene naam (bijv. server FQDN of UW naam) :
-
E-mailadres :
Stap 4. Onderteken zelf uw certificaat:
-
openssl ca -extensions v3_ca -out server. CA-signed.crt -keyfile server. CA.key -verbose -selfsign -md sha256 -enddate 330630235959Z -infiles server. CA.csr
-
De opties uitgelegd:
- ca - Laadt de module Certificaatautoriteit
- -extension v3_ca - Laadt de v3_ca-extensie, een must-have voor gebruik in moderne browsers
- -out server. CA-signed.crt - De naam van uw nieuwe ondertekende sleutel
- -keyfile server. CA.key - De privésleutel die u in stap 1 hebt gemaakt
- -verbose - toont u details over het verzoek terwijl het wordt gemaakt (optioneel)
- -selfsign - Vertelt openssl dat u dezelfde sleutel gebruikt om het verzoek te ondertekenen
- -md sha256 - Het coderingsalgoritme dat voor het bericht moet worden gebruikt. (Als je niet weet wat dit is, verander dit dan niet. Verander dit alleen als je weet wat je doet)
- -einddatum 330630235959Z - De einddatum van het certificaat. De notatie is YYMMDDHHMMSSZ waarbij Z in GMT staat, ook wel bekend als "Zulu"-tijd.
- -infiles server. CA.csr - het ondertekeningsverzoekbestand dat u in de bovenstaande stap hebt gemaakt.
Stap 5. Inspecteer uw CA-certificaat
- openssl x509 -noout -text -in server. CA.crt
-
De opties uitgelegd:
- x509 - Laadt de x509-module om ondertekende certificaten te inspecteren.
- -noout - Voer de gecodeerde tekst niet uit
- -tekst - geef de informatie op het scherm weer
- -in server. CA.crt - Laad het ondertekende certificaat
- Het bestand server. CA.crt kan worden gedistribueerd naar iedereen die uw website zal gebruiken of certificaten zal gebruiken die u van plan bent te ondertekenen.
Deel 2 van 4: SSL-certificaten maken voor een service, zoals Apache
Stap 1. Maak een privésleutel aan
-
openssl genrsa -des3 -out server.apache.key 2048
-
De opties uitgelegd:
- openssl - de naam van de software
- genrsa - maakt een nieuwe privésleutel
- -des3 - versleutel de sleutel met het DES-cijfer
- -out server.apache.key - de naam van uw nieuwe sleutel
- 2048 - de lengte, in bits, van de privésleutel (zie de waarschuwingen)
- Bewaar dit certificaat en het wachtwoord op een veilige plaats.
Stap 2. Maak een certificaatondertekeningsverzoek aan
-
openssl req -verbose -new -key server.apache.key -out server.apache.csr -sha256
-
De opties uitgelegd:
- req - Maakt een ondertekeningsverzoek
- -verbose - toont u details over het verzoek terwijl het wordt gemaakt (optioneel)
- -new - maakt een nieuw verzoek aan
- -key server.apache.key - De persoonlijke sleutel die u zojuist hierboven hebt gemaakt.
- -out server.apache.csr - De bestandsnaam van het ondertekeningsverzoek dat u aan het maken bent
- sha256 - Het coderingsalgoritme dat moet worden gebruikt voor ondertekeningsverzoeken (Als u niet weet wat dit is, verander dit dan niet. U moet dit alleen wijzigen als u weet wat u doet)
Stap 3. Gebruik uw CA-certificaat om de nieuwe sleutel te ondertekenen
-
openssl ca -out server.apache.pem -keyfile server. CA.key -infiles server.apache.csr
-
De opties uitgelegd:
- ca - Laadt de module Certificaatautoriteit
- -out server.apache.pem - De bestandsnaam van het ondertekende certificaat
- -keyfile server. CA.key - De bestandsnaam van het CA-certificaat dat de aanvraag zal ondertekenen
- -infiles server.apache.csr - De bestandsnaam van het certificaatondertekeningsverzoek
Stap 4. Vul de gegevens zo volledig mogelijk in:
-
Landnaam (2-letterige code) [AU]:
ons
-
Naam staat of provincie (volledige naam) [Some-state]:
CA
-
Plaatsnaam (bijv. stad) :
Siliconen vallei
-
Naam organisatie (bijv. bedrijf) [Internet Widgits Pty Ltd]:
wikiHow, Inc.
- Naam organisatie-eenheid (bijv. sectie) :
-
Algemene naam (bijv. server FQDN of UW naam) :
-
E-mailadres :
Stap 5. Bewaar een kopie van uw privésleutel op een andere locatie
Maak een privésleutel zonder wachtwoord om te voorkomen dat Apache u om een wachtwoord vraagt:
-
openssl rsa -in server.apache.key -out server.apache.unsecured.key
-
De opties uitgelegd:
- rsa - Voert het RSA-coderingsprogramma uit
- -in server.apache.key - De sleutelnaam die u wilt converteren.
- -out server.apache.unsecured.key - De bestandsnaam van de nieuwe onbeveiligde sleutel
Stap 6. Gebruik het resulterende bestand server.apache.pem samen met de privésleutel die u in stap 1 hebt gegenereerd om uw apache2.conf-bestand te configureren
Deel 3 van 4: Een gebruikerscertificaat voor authenticatie maken
Stap 1. Volg alle stappen in _SSL-certificaten maken voor Apache_
Stap 2. Converteer uw ondertekende certificaat naar een PKCS12
openssl pkcs12 -export -in user_cert.pem -inkey user_private_key.pem -out user_cert.p12
Deel 4 van 4: S/MIME-e-mailcertificaten maken
Stap 1. Maak een privésleutel aan
openssl genrsa -des3 -out private_email.key 2048
Stap 2. Maak een certificaatondertekeningsverzoek aan
openssl req -new -key private_email.key -out private_email.csr
Stap 3. Gebruik uw CA-certificaat om de nieuwe sleutel te ondertekenen
openssl ca -out private_email.pem -keyfile server. CA.key -infiles private_email.csr
Stap 4. Converteer het certificaat naar PKCS12
openssl pkcs12 -export -in private_email.crt -inkey private_email.key -out private_email.p12
Stap 5. Maak een Public Key-certificaat voor distributie
openssl pkcs12 -export -out public_cert.p12 -in private_email.pem -clcerts -nokeys -name "WikiHow's Public Key"
Tips
U kunt de inhoud van PEM-sleutels variëren door het volgende commando uit te voeren: openssl x509 -noout -text -in certificate.pem
Waarschuwingen
- 1024-bits sleutels worden als verouderd beschouwd. 2048-bits sleutels worden tot 2030 als veilig beschouwd voor gebruikerscertificaten, maar worden als onvoldoende beschouwd voor rootcertificaten. Houd rekening met deze kwetsbaarheden bij het maken van uw certificaten.
- De meeste moderne browsers geven standaard de waarschuwing 'Niet-vertrouwd certificaat' weer wanneer iemand uw site bezoekt. Er is veel discussie geweest over de formulering van deze waarschuwingen, aangezien niet-technische gebruikers overrompeld kunnen worden. Het is vaak het beste om een grote autoriteit te gebruiken, zodat gebruikers de waarschuwingen niet krijgen.