Kan iemand mij de juiste manier/opdracht geven om de certificaat .crt
en private key .key
bestanden uit een .pem
bestand te halen/converteren? Ik heb net gelezen dat ze onderling uitwisselbaar zijn, maar niet hoe.
Omzetten met OpenSSL Met deze commando's kunt u certificaten en sleutels converteren naar verschillende formaten om ze compatibel te maken met specifieke soorten servers of software.
Converteer een DER bestand (.crt .cer .der) naar PEM openssl x509 -inform der -in certificate.cer -out certificate.pem
Zet een PEM-bestand om in DER openssl x509 -outform der -in certificate.pem -out certificate.der
Converteer een PKCS#12 bestand (.pfx .p12) met een private sleutel en certificaten naar PEM openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes U kunt -nocerts toevoegen om alleen de private sleutel uit te voeren of -nokeys toevoegen om alleen de certificaten uit te voeren.
Converteer een PEM certificaatbestand en een private sleutel naar PKCS#12 (.pfx .p12) openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
PEM omzetten naar CRT (.CRT bestand) openssl x509 -outform der -in certificaat.pem -out certificaat.crt OpenSSL Converteer PEM
PEM omzetten naar DER openssl x509 -outform der -in certificaat.pem -out certificaat.der
PEM omzetten naar P7B openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
PEM omzetten naar PFX openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt OpenSSL Converteer DER
Omzetten DER naar PEM openssl x509 -inform der -in certificaat.cer -out certificaat.pem OpenSSL Converteer P7B
Converteer P7B naar PEM openssl pkcs7 -print_certs -in certificaat.p7b -out certificaat.cer
P7B omzetten naar PFX openssl pkcs7 -print_certs -in certificaat.p7b -out certificaat.cer openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer OpenSSL Converteer PFX
PFX omzetten naar PEM openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes Genereer rsa sleutels met OpenSSL
Met OpenSSL op de commandoregel moet u eerst een publieke en private sleutel genereren, u moet dit bestand beveiligen met het -passout argument, er zijn veel verschillende vormen die dit argument kan aannemen dus raadpleeg de OpenSSL documentatie hierover. openssl genrsa -out private.pem 1024
Dit maakt een sleutelbestand aan genaamd private.pem dat 1024 bits gebruikt. Dit bestand heeft eigenlijk zowel de private als de public keys, dus u moet de public uit dit bestand halen: openssl rsa -in private.pem -out public.pem -outform PEM -pubout of
openssl rsa -in private.pem -pubout > public.pem
of
openssl rsa -in private.pem -pubout -out public.pem
U zal nu public.pem hebben dat enkel uw publieke sleutel bevat, u kan dit vrij delen met derden. U kunt het allemaal testen door zelf iets te versleutelen met uw publieke sleutel en dan te ontsleutelen met uw private sleutel, eerst hebben we een beetje data nodig om te versleutelen:
Voorbeeld bestand: echo 'too many secrets' > file.txt
Je hebt nu wat data in file.txt, laten we het versleutelen met OpenSSL en de publieke sleutel: openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
Dit creëert een versleutelde versie van file.txt en noemt het file.ssl, als je naar dit bestand kijkt is het gewoon binaire troep, niets bruikbaars voor niemand. Nu kan je het de-coderen met de private sleutel: openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
Je hebt nu een onversleuteld bestand in decrypted.txt: cat decrypted.txt |output -> too many secrets RSA TOOLS Opties in OpenSSL
NAME
rsa - RSA sleutelbewerkingsgereedschap
SYNOPSIS
openssl rsa [-help] [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-aes128] [-aes192] [-aes256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [-idee] [-tekst] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-RSAPublicKey_in] [-RSAPublicKey_out] [-engine id]
OMSCHRIJVING
Het rsa commando verwerkt RSA sleutels. Ze kunnen worden geconverteerd tussen verschillende vormen en hun componenten kunnen worden afgedrukt. Merk op dat dit commando het traditionele SSLeay-compatibele formaat gebruikt voor private sleutelcodering: nieuwere toepassingen moeten het veiligere PKCS#8-formaat gebruiken met het hulpprogramma pkcs8.
COMMANDO OPTIES -help
Druk een gebruiksbericht af. -inform DER|NET|PEM Dit specificeert het invoerformaat. De DER optie gebruikt een ASN1 DER gecodeerde vorm die compatibel is met het PKCS#1 RSAPrivateKey of SubjectPublicKeyInfo formaat. Het PEM-formaat is het standaardformaat: het bestaat uit het DER-formaat base64 gecodeerd met bijkomende header- en footer-regels. Bij invoer worden ook PKCS#8-formaat private sleutels aanvaard. Het NET-formaat is een formaat dat wordt beschreven in de sectie OPMERKINGEN. -outform DER|NET|PEM Dit specificeert het uitvoerformaat, de opties hebben dezelfde betekenis als de -inform optie. -in bestandsnaam Dit specificeert de input bestandsnaam om een sleutel van te lezen of standaard input als deze optie niet is gespecificeerd. Als de sleutel versleuteld is zal er om een pass phrase gevraagd worden. -passin arg de bron van het invoerbestand-wachtwoord. Voor meer informatie over het formaat van arg zie de sectie PASS PHRASE ARGUMENTS in openssl. -out bestandsnaam Dit specificeert de uitvoer bestandsnaam om een sleutel naar te schrijven of standaard uitvoer als deze optie niet gespecificeerd is. Als er encryptie opties zijn ingesteld dan zal er om een pass phrase worden gevraagd. De uitvoerbestandsnaam mag niet dezelfde zijn als de invoerbestandsnaam. -passout wachtwoord de bron van het uitvoerbestand wachtwoord. Voor meer informatie over het formaat van arg zie de sectie PASS PHRASE ARGUMENTS in openssl. -aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea Deze opties versleutelen de private sleutel met de gespecificeerde cipher alvorens deze uit te voeren. Er wordt om een pass phrase gevraagd. Als geen van deze opties wordt opgegeven, wordt de sleutel in platte tekst geschreven. Dit betekent dat het gebruik van het rsa-hulpprogramma om een versleutelde sleutel zonder versleutelingsoptie in te lezen kan worden gebruikt om de sleutel van een pass phrase te ontdoen, of door de versleutelingsopties in te stellen kan het worden gebruikt om de pass phrase toe te voegen of te veranderen. Deze opties kunnen alleen worden gebruikt met uitvoerbestanden in PEM-formaat. -text drukt de verschillende publieke of private sleutelcomponenten af in gewone tekst naast de gecodeerde versie. -noout deze optie voorkomt uitvoer van de gecodeerde versie van de sleutel. -modulus deze optie drukt de waarde van de modulus van de sleutel af. -check deze optie controleert de consistentie van een RSA private sleutel. -pubin standaard wordt een private sleutel uit het invoerbestand gelezen: met deze optie wordt in plaats daarvan een publieke sleutel gelezen. -pubout standaard wordt een private sleutel uitgevoerd: met deze optie wordt in plaats daarvan een publieke sleutel uitgevoerd. Deze optie wordt automatisch ingesteld als de invoer een publieke sleutel is. -RSAPublicKey_in, -RSAPublicKey_out zoals -pubin en -pubout behalve dat het RSAPublicKey formaat wordt gebruikt. -engine id het specificeren van een engine (door zijn unieke id string) zal ervoor zorgen dat rsa een functionele referentie naar de gespecificeerde engine probeert te verkrijgen, en deze dus initialiseert indien nodig. De motor wordt dan ingesteld als de standaard voor alle beschikbare algoritmen.
NOTEN Het PEM private key-formaat gebruikt de header- en footer-regels: -----BEGIN RSA PRIVATE KEY----- ------EINDE RSA PRIVÉSLEUTEL----- Het PEM publieke sleutelformaat gebruikt de kop- en voettekstregels: -----BEGIN PUBLIEKE SLEUTEL----- -----END PUBLIC KEY----- Het PEM RSAPublicKey-formaat gebruikt de kop- en voettekstregels: -----BEGIN RSA PUBLIC KEY----- ------EINDE RSA PUBLIC KEY-----
De NET vorm is een formaat dat compatibel is met oudere Netscape servers en Microsoft IIS .key bestanden, deze gebruikt ongezouten RC4 voor zijn encryptie. Het is niet erg veilig en zou dus alleen gebruikt moeten worden wanneer dat nodig is. Sommige nieuwere versies van IIS hebben extra gegevens in de geëxporteerde .key bestanden. Om deze met het hulpprogramma te gebruiken, bekijk het bestand met een binaire editor en zoek naar de string "private-key", ga dan terug naar de byte-sequentie 0x30, 0x82 (dit is een ASN1 SEQUENCE). Kopieer alle gegevens vanaf dit punt naar een ander bestand en gebruik dat als invoer voor het rsa hulpprogramma met de -inform NET optie. VOORBEELDEN Om de pass phrase op een RSA private sleutel te verwijderen: openssl rsa -in key.pem -out keyout.pem Om een private sleutel te versleutelen met triple DES: openssl rsa -in key.pem -des3 -out keyout.pem Om een private sleutel van PEM naar DER formaat om te zetten: openssl rsa -in key.pem -outform DER -out keyout.der Om de componenten van een private key naar standaard output uit te printen: openssl rsa -in key.pem -text -noout Om enkel het publieke gedeelte van een private sleutel uit te printen: openssl rsa -in key.pem -pubout -out pubkey.pem Om het publieke gedeelte van een private sleutel in RSAPublicKey formaat uit te voeren: openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem
Om de sleutel en cert uit een pem bestand te halen:
openssl pkey -in foo.pem -out foo.key
Een andere methode om de sleutel te extraheren...
openssl rsa -in foo.pem -out foo.key
openssl crl2pkcs7 -nocrl -certfile foo.pem | openssl pkcs7 -print_certs -out foo.cert
openssl x509 -in foo.pem -outform DER -out first-cert.der