Kan iemand mij vertellen wat de juiste manier/opdracht is om het certificaat .crt
en de privésleutel .key
-bestanden uit een .pem
bestand? Ik las net dat ze uitwisselbaar zijn, maar niet hoe.
Antwoord 1, autoriteit 100%
Ik kon pem converteren naar crt met dit:
openssl x509 -outform der -in your-cert.pem -out your-cert.crt
Antwoord 2, autoriteit 79%
Converteren met OpenSSL
Met deze opdrachten kunt u certificaten en sleutels converteren naar verschillende formaten om ze compatibel te maken met specifieke typen servers of software.
-
Converteer een DER-bestand (.crt .cer .der) naar PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem
-
Een PEM-bestand converteren naar DER
openssl x509 -outform der -in certificate.pem -out certificate.der
-
Converteer een PKCS#12-bestand (.pfx .p12) met een persoonlijke sleutel en certificaten naar PEM
openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes You can add -nocerts to only output the private key or add -nokeys to only output the certificates.
-
Converteer een PEM-certificaatbestand en een persoonlijke sleutel naar PKCS#12 (.pfx .p12)
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
-
PEM converteren naar CRT (.CRT-bestand)
openssl x509 -outform der -in certificate.pem -out certificate.crt
OpenSSL PEM converteren
-
PEM converteren naar DER
openssl x509 -outform der -in certificate.pem -out certificate.der
-
PEM converteren naar P7B
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
-
Converteer PEM naar PFX
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
OpenSSL Convert Der
-
Converteer der naar PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem
OpenSSL Converteer P7B
-
Converteer P7B naar PEM
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
-
Converteer P7B naar PFX
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
OpenSSL Converteer PFX
-
Converteer PFX naar PEM
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
Genereer RSA-toetsen door openssl
-
Met OpenSSL op de opdrachtregel hoeft u eerst een publieke en privésleutel te genereren, moet u dit bestand beveiligen met behulp van het -passout-argument, er zijn veel verschillende vormen die dit argument kan duren OpenSSL-documentatie over dat.
openssl genrsa -out private.pem 1024
-
Hiermee wordt een sleutelbestand met de naam Private.pem gemaakt dat 1024 bits gebruikt. Dit bestand heeft eigenlijk zowel de particuliere als de openbare sleutels, dus u moet het publiek uit dit bestand extraheren:
openssl rsa -in private.pem -out public.pem -outform PEM -pubout or openssl rsa -in private.pem -pubout > public.pem or openssl rsa -in private.pem -pubout -out public.pem
Je hebt nu public.pem met alleen je openbare sleutel, je kunt deze vrij delen met derden.
Je kunt het allemaal testen door zelf iets te versleutelen met je openbare sleutel en vervolgens te ontsleutelen met je privésleutel, eerst hebben we wat gegevens nodig om te versleutelen: -
Voorbeeldbestand :
echo 'too many secrets' > file.txt
-
Je hebt nu wat gegevens in file.txt, laat het versleutelen met OpenSSL en
de openbare sleutel:openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
-
Hiermee wordt een versleutelde versie van file.txt gemaakt die deze file.ssl noemt, als
je kijkt naar dit bestand, het is gewoon binaire rommel, niets erg nuttigs om
iedereen. Nu kunt u het ontsleutelen met de privésleutel:openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
-
Je hebt nu een niet-versleuteld bestand in decrypted.txt:
cat decrypted.txt |output -> too many secrets
RSA-TOOLS-opties in OpenSSL
-
NAAM
rsa – RSA-sleutelverwerkingstool
-
SYNOPSIS
openssl rsa [-help] [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in bestandsnaam] [-passin arg] [-out bestandsnaam] [-passout arg] [-aes128 ] [-aes192] [-aes256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [-idee] [-tekst] [-noout] [-modulus] [-check] [ -pubin] [-pubout] [-RSAPublicKey_in] [-RSAPublicKey_out] [-engine-id]
-
BESCHRIJVING
Het rsa-commando verwerkt RSA-sleutels. Ze kunnen worden omgezet tussen verschillende vormen en hun componenten worden afgedrukt. Merk op dat deze opdracht het traditionele SSLeay-compatibele formaat gebruikt voor versleuteling van privésleutels: nieuwere toepassingen zouden het veiligere PKCS#8-formaat moeten gebruiken met het hulpprogramma pkcs8.
-
OPDRACHTOPTIES
-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 de PKCS#1 RSAPrivateKey- of SubjectPublicKeyInfo-indeling. Het PEM-formulier is het standaardformaat: het bestaat uit het DER-formaat base64 gecodeerd met extra kop- en voettekstregels. Bij invoer worden ook privésleutels in PKCS#8-formaat geaccepteerd. Het NET-formulier 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 filename
Dit specificeert de invoerbestandsnaam waaruit een sleutel moet worden gelezen of standaardinvoer als deze optie niet is opgegeven. Als de sleutel versleuteld is, wordt er om een wachtwoord gevraagd.
-passin arg
de wachtwoordbron van het invoerbestand. Voor meer informatie over het formaat van arg, zie de sectie WACHTZIN ARGUMENTEN in openssl.
-out filename
Dit specificeert de naam van het uitvoerbestand waarnaar een sleutel moet worden geschreven, of standaarduitvoer als deze optie niet is opgegeven. Als er coderingsopties zijn ingesteld, wordt er om een wachtwoordzin gevraagd. De naam van het uitvoerbestand mag niet hetzelfde zijn als de naam van het invoerbestand.
-passout password
De wachtwoordbron van het wachtwoordbestand. Raadpleeg voor meer informatie over het formaat van ARG het gedeelte Pass Phrase Argumenten in OpenSSL.
-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea
Deze opties versleutelen de privésleutel met het opgegeven cijfer voordat u deze uitvoert. Er wordt een pass-uitdrukking gevraagd. Als geen van deze opties is opgegeven, wordt de sleutel in platte tekst geschreven. Dit betekent dat het gebruik van het RSA-hulpprogramma in een gecodeerde sleutel met geen enkele coderingsoptie kan worden gebruikt, kan worden gebruikt om de PASS-zin van een toets te verwijderen of door de coderingsopties in te stellen. Het kan worden gebruikt om de PASS-zin toe te voegen of te wijzigen. Deze opties kunnen alleen worden gebruikt met PEM-indeling uitvoerbestanden.
-text
Drukt de verschillende publieke of privé-sleutelcomponenten in duidelijke tekst uit naast de gecodeerde versie.
-noout
Met deze optie wordt de uitvoer van de gecodeerde versie van de toets voorkomt.
-modulus
Met deze optie wordt de waarde van de modulus van de sleutel afgedrukt.
-check
Met deze optie controleert de consistentie van een RSA-privésleutel.
-pubin
Standaard wordt een privésleutel gelezen van het invoerbestand: met deze optie wordt in plaats daarvan een openbare sleutel gelezen.
-pubout
Standaard wordt een privésleutel uitgevoerd: met deze optie wordt in plaats daarvan een openbare sleutel uitgevoerd. Deze optie wordt automatisch ingesteld als de invoer een openbare sleutel is.
-RSAPublicKey_in, -RSAPublicKey_out
zoals -pubin en -pubout, behalve dat in plaats daarvan de indeling RSAPublicKey wordt gebruikt.
-engine id
het specificeren van een engine (door zijn unieke id-tekenreeks) zal ervoor zorgen dat rsa probeert een functionele verwijzing naar de gespecificeerde engine te verkrijgen, en het zo nodig initialiseert. De engine wordt dan als standaard ingesteld voor alle beschikbare algoritmen.
-
OPMERKINGEN
De indeling van de PEM-privésleutel gebruikt de kop- en voettekstregels:
-----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----
De PEM-indeling voor openbare sleutels gebruikt de kop- en voettekstregels:
-----BEGIN PUBLIC KEY----- -----END PUBLIC KEY-----
De PEM RSAPublicKey-indeling gebruikt de kop- en voettekstregels:
-----BEGIN RSA PUBLIC KEY----- -----END RSA PUBLIC KEY-----
Het NET-formulier is een formaat dat compatibel is met oudere Netscape-servers en Microsoft IIS .key-bestanden, dit gebruikt ongezouten RC4 voor de codering. Het is niet erg veilig en mag daarom alleen worden gebruikt als dat nodig is.
Sommige nieuwere versies van IIS bevatten aanvullende gegevens in de geëxporteerde .key-bestanden. Om deze met het hulpprogramma te gebruiken, bekijkt u het bestand met een binaire editor en zoekt u naar de tekenreeks “private-key”, en traceert u vervolgens terug naar de bytereeks 0x30, 0x82 (dit is een ASN1 SEQUENTIE). Kopieer alle gegevens vanaf dit punt naar een ander bestand en gebruik dat als invoer voor het rsa-hulpprogramma met de optie -inform NET.
VOORBEELDEN
De wachtwoordzin van een RSA-privésleutel verwijderen:
openssl rsa -in key.pem -out keyout.pem
Een privésleutel coderen met drievoudige DES:
openssl rsa -in key.pem -des3 -out keyout.pem
Een privésleutel van PEM- naar DER-indeling converteren:
openssl rsa -in key.pem -outform DER -out keyout.der
Om de componenten van een privésleutel af te drukken naar standaarduitvoer:
openssl rsa -in key.pem -text -noout
Om alleen het openbare deel van een privésleutel uit te voeren:
openssl rsa -in key.pem -pubout -out pubkey.pem
Voer het openbare deel van een privésleutel uit in RSAPublicKey-indeling:
openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem
Antwoord 3, autoriteit 10%
Om de sleutel en het certificaat uit een pem-bestand te extraheren:
Sleutel uitpakken
openssl pkey -in foo.pem -out foo.key
Een andere methode om de sleutel te extraheren…
openssl rsa -in foo.pem -out foo.key
Alle certificaten extraheren, inclusief de CA-keten
openssl crl2pkcs7 -nocrl -certfile foo.pem | openssl pkcs7 -print_certs -out foo.cert
Het tekstueel eerste certificaat extraheren als DER
openssl x509 -in foo.pem -outform DER -out first-cert.der
Antwoord 4, autoriteit 4%
Vereiste
openssl
moet worden geïnstalleerd.
Als Git Bash
is geïnstalleerd in Windows, probeer dat dan! Alternatieve binarieszijn hier te vinden.
Stap 1: extraheer .key
uit .pem
openssl pkey -in cert.pem -out cert.key
Stap 2: Extraheer .crt
uit .pem
openssl crl2pkcs7 -nocrl -certfile cert.pem | openssl pkcs7 -print_certs -out cert.crt
Antwoord 5
Dit is wat ik deed op Windows.
- Download een ZIP-bestand met de Open SSL-exe van Google
- Pak het ZIP-bestand uit en ga naar de map BIN.
- Ga naar de adresbalk in de bakmap en typ cmd. Hierdoor wordt een opdrachtprompt opgezet in deze map.
- Verplaatsen / Plaats het .PEM-bestand in deze bin-map.
- Voer twee opdrachten uit. Men maakt het CERT en het tweede het sleutelbestand
openssl x509 -outform der -in yourPemFilename.pem -out certfileOutName.crt
openssl rsa -in yourPemFilename.pem -out keyfileOutName.key
Antwoord 6
Als u deze vraag heeft gesteld, omdat u mkcert
gebruikt, is de truc dat de .pem
bestand de CERT en de -key.pem
Bestand is de sleutel.
(U hoeft niet om te zetten, gewoon uitgevoerd mkcert yourdomain.dev otherdomain.dev
)
Antwoord 7
Een .crt slaat het certificaat op .. in PEM-indeling. Dus een .pem, terwijl het ook andere dingen kan hebben zoals een CSR (Certificate Signing-aanvraag), een privésleutel, een openbare sleutel of andere CERTS, wanneer het slechts een cert opslaat, is hetzelfde als een .crt.
Een PEM is een basis 64 gecodeerd bestand met een koptekst en een voettekst tussen elke sectie.
Om een bepaald gedeelte te extraheren, is een PERL-script, zoals het volgende volledig geldig, maar voel je vrij om enkele van de opgeven van OpenSSL te gebruiken.
perl -ne "\$n++ if /BEGIN/; print if \$n == 1 && /BEGIN/.../END/;" mydomain.pem
Waar == 1 kan worden gewijzigd in welke sectie u ooit nodig hebt. Uiteraard als u precies de koptekst en de voettekst weet, is u nodig en is er slechts een van die in het bestand (meestal het geval als u gewoon de CERT en de sleutel daar inhoudt), kunt u het vereenvoudigen:
perl -ne "print if /^-----BEGIN CERTIFICATE-----\$/.../END/;" mydomain.pem