Poate cineva să-mi spună în mod corect/comandă pentru a extrage/a converti certificat .crt
și cheia privată .cheia pentru fișierele dintr-o
.pem` de fișiere? Tocmai am citit sunt interschimbabile, dar nu și cum.
Conversia Folosind OpenSSL Aceste comenzi vă permit să converti certificate și cheile de la diferite formate pentru a le face compatibile cu anumite tipuri de servere sau software.
openssl rsa-în particular.pem -pubout > publice.pem sau
openssl rsa-în particular.pem -pubout -out publice.pem
Veți avea acum publice.pem conțin doar cheia publică, puteți împărtăși în mod liber cu 3 părți. Puteți testa toate doar prin criptarea ceva te folosind cheia publică și apoi decriptarea folosind cheia privată, în primul rând avem nevoie de un bit de date pentru a cripta:
- Exemplu de fișier : echo 'prea multe secrete' > file.txt
- Acum aveți unele date în file.txt, permite criptarea folosind OpenSSL și cheia publică: openssl rsautl -cripta -inkey publice.pem -pubin -în file.txt -afară de fișier.ssl
- Acest lucru creează o versiune criptată a file.txt numindu-l de fișier.ssl, dacă te uiți la acest dosar e doar binare junk, nimic foarte util pentru nimeni. Acum puteți criptarea folosind cheia privată: openssl rsautl -decripta -inkey privat.pem -in de fișier.ssl -out decrypted.txt
- Acum veți avea un fișier necriptat în decrypted.txt: pisica decrypted.txt |ieșire -> prea multe secrete RSA INSTRUMENTE Opțiuni în OpenSSL
- NUMELE rsa - cheie RSA instrument de prelucrare
- REZUMAT openssl rsa [-help] [-informa PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-a pasat arg] [-out filename] [-passout arg] [-aes128] [-aes192] [-aes256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [idee] [text] [-noout] [-modul] [-verifica] [-pubin] [-pubout] [-RSAPublicKey_in] [-RSAPublicKey_out] [-motor id-ul]
- DESCRIERE rsa comandă procesele de chei RSA. Ele pot fi convertite între diverse forme și componentele lor imprimate. Notă această comandă se utilizează tradițional SSLeay format compatibil pentru criptare cu cheie privată: noi aplicații ar trebui să utilizeze cele mai sigure PKCS#8 format folosind pkcs8 utilitate.
- OPȚIUNI DE COMANDĂ -ajuta Imprima o utilizare mesaj. -informează DER|NET|PEM Acest specifică formatul de intrare. DER opțiune utilizează o ASN1 DER formă codificată compatibil cu PKCS#1 RSAPrivateKey sau SubjectPublicKeyInfo format. PEM forma este formatul implicit: se compune din DER format base64 codificat cu suplimentare de linii de antet și subsol. La intrare PKCS#8 format cheile private sunt, de asemenea, acceptate. NET formă este un format care este descris în secțiunea NOTE. -outform DER|NET|PEM Acest specifică formatul de ieșire, opțiunile au același sens ca-informează opțiune. -în numele fișierului Acest specifică de intrare nume de fișier pentru a citi o cheie de la sau standard de intrare dacă această opțiune nu este specificată. Dacă cheia este codificată de o frază va fi determinat de. -în trecere arg de intrare parola fișierului sursă. Pentru mai multe informații despre formatul de arg vezi FRAZA de TRECERE ARGUMENTE secțiune în openssl. -afară filename Acest specifică numele fișierului de ieșire pentru a scrie o cheie sau standard de ieșire dacă această opțiune nu este specificată. Dacă orice opțiuni de criptare sunt stabilite apoi o frază va fi determinat de. Numele fișierului de ieșire nu trebuie să fie aceeași ca intrare nume de fișier. -passout parola fișierul de ieșire parola sursa. Pentru mai multe informații despre formatul de arg vezi FRAZA de TRECERE ARGUMENTE secțiune în openssl. -aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idee Aceste opțiuni cripta cheia privată cu cele specificate cifru înainte de a scoate-l. O frază se solicită. Dacă niciuna dintre aceste opțiuni nu este specificat cheia este scris în text simplu. Acest lucru înseamnă că, folosind rsa utilitate pentru a citi într-o cheie criptată cu nici o opțiune de criptare poate fi utilizat pentru a elimina parola de la o cheie, sau prin setarea opțiuni de criptare poate fi utilizat pentru a adăuga sau schimba parola. Aceste opțiuni pot fi folosite numai cu PEM format fișiere de ieșire. -text imprimă diverse public sau privat componente cheie în text simplu, în plus față de versiune codată. -noout această opțiune împiedică ieșirea versiune codată de cheie. -modul această opțiune imprimă valoarea modulul de cheie. -verifica această opțiune verifică consistența unui cheia privată RSA. -pubin implicit o cheie privată este citit din fișierul de intrare: cu această opțiune o cheie publică este citit în loc. -pubout implicit o cheie privată este ieșire: cu această opțiune o cheie publică va fi de ieșire în loc. Această opțiune este setată automat dacă intrarea este o cheie publică. -RSAPublicKey_in, -RSAPublicKey_out ca -pubin și -pubout cu excepția RSAPublicKey format este folosit în loc. -id-ul motorului specificarea unui motor (de id-ul unic string) va provoca rsa pentru a încerca să obțină o funcțională de referință specificate de motor, astfel inițializare-l dacă este necesar. Motorul va fi setat ca implicit pentru toate disponibile algoritmi.
- NOTE PEM cheie privată format utilizează linii de antet și subsol: -----BEGIN CHEIA PRIVATĂ RSA----- -----END CHEIA PRIVATĂ RSA----- PEM format de cheie publică utilizează linii de antet și subsol: -----BEGIN CHEIE PUBLICĂ----- -----END CHEIE PUBLICĂ----- PEM RSAPublicKey format utilizează linii de antet și subsol: -----BEGIN RSA CU CHEIE PUBLICĂ----- -----END RSA CU CHEIE PUBLICĂ----- NET formă este un format compatibil cu vârstă serverele Netscape și Microsoft IIS .fișierele cheie, aceasta folosește nesărat RC4 pentru criptare. Nu este foarte sigură și așa ar trebui să fie utilizate numai atunci când este necesar. Unele versiune mai nouă a IIS avea date suplimentare în exportate .fișierele cheie. Pentru a utiliza aceste cu utilitarul, vizualiza fișierul cu un editor binar și căutați pentru string "private-key", apoi urmări înapoi la secvență de octeți 0x30, 0x82 (aceasta este o ASN1 SECVENȚĂ). Copiați toate datele din acest punct începând de la un alt fișier și de a folosi ca intrare la rsa de utilitate cu cea de -a informa NET opțiune. EXEMPLE Pentru a elimina parola de pe o cheie privată RSA: openssl rsa-cheie.pem -out keyout.pem Pentru a cripta o cheie privată folosind triple DES: openssl rsa-cheie.pem -des3 -out keyout.pem Pentru a converti o cheie privată de PEM la DER format: openssl rsa-cheie.pem -outform DER -out keyout.der Pentru a imprima componente de o cheie privată pentru a ieșire standard: openssl rsa-cheie.pem -text-noout La doar ieșire publică o parte a cheii private: openssl rsa-cheie.pem -pubout -out pubkey.pem Ieșire publică, parte a unei chei private într-RSAPublicKey format: openssl rsa-cheie.pem -RSAPublicKey_out -out pubkey.pem
Pentru a extrage cheia și cert de la un fișier pem:
openssl pkey -in foo.pem -out foo.key
O altă metodă de a extrage cheia...
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
O .crt magazine certificatul.. în format pem. Deci o .pem, în timp ce acesta poate avea, de asemenea, alte lucruri cum ar fi un csr (cerere de semnare a Certificatului), o cheie privată, o cheie publică, sau alte cert, atunci când este stocarea doar o cert, este același lucru ca un .crt.
Pem este un codat base 64 fișier cu un antet și un subsol între fiecare secțiune.
Pentru a extrage o anumită secțiune, un script perl, cum ar fi următoarele este total valabil, dar simțiți-vă liber pentru a utiliza unele dintre openssl comenzi.
perl -ne "\$n++ if /BEGIN/; print if \$n == 1 && /BEGIN/.../END/;" mydomain.pem
unde ==1 poate fi schimbat pentru care secțiunea de care ai nevoie. Evident, dacă știi exact antet și subsol de care aveți nevoie și nu este doar unul dintre cei în fișier (de obicei cazul, dacă vă păstrați doar cert și cheia acolo), puteți simplifica:
perl -ne "print if /^-----BEGIN CERTIFICATE-----\$/.../END/;" mydomain.pem
Dacă ai pus această întrebare pentru că're folosind mkcert
trucul este că.pemde fișier este cert și
-cheie.pem` de fișier este cheia.
(Nu't nevoie pentru a converti, trebuie doar să rulați mkcert yourdomain.dev otherdomain.dev
)