Sådan administreres offentlig nøgleinfrastruktur med OpenSSL

OpenSSL er et open source kryptografisk værktøjssæt med fokus på Secure Socket Layer / Transport Layer Security eller SSL / TLS, der er udbredt på GNU / Linux-systemer. Det udfører en vigtig del af vores daglige oplevelse på internettet. I dag vil jeg pege på nogle kommandoer for at hjælpe dig med at styre X.509 Offentlig nøgleinfrastruktur (PKI) og også bruge denne værktøjskasse til og kryptere / dekryptere filer og andre data ved hjælp af dette fantastiske værktøj

openssl-textcert

Dette dokument er hovedsagelig baseret på eksempler, du kan henvise til eksemplerne efter behov, i nogle tilfælde vil du se mere end en måde at udføre en operation på. Andre vil der være adgangskoder, som du skal ændre, før du bruger det på dit miljø.

OpenSSL Key Management

De fleste operationer er baseret på nøgler, og her er nogle kommandoer til at håndtere private og offentlige nøgler.

RSA

RSA er et af de mest udbredte public key-krypteringsalgoritmesystemer, og her er nogle grundlæggende operationer.

Genererer Triple DES beskyttet RSA private nøgle 2048 bits lang beskyttet af passphrase nonsense123

openssl genrsa-pass pass: nonsens123 -des3 -out rsa-2048-priv-key.pem 2048

Du kan skrive det tilsvarende offentlig nøgle til en fil som du ønsker.

openssl rsa -in rsa-2048-priv-key.pem -pubout-out rsa-2048-public-key.pem

Du kan fjerne adgangskoden fra en beskyttet nøgle og dump nøglen på en ny fil

openssl rsa -in priv-key.pem-out priv-key-no-pass.pem

Følgende kommando skal verificere din nøgle.

openssl rsa -check -in server-key.pem

DSA

Den digitale signaturalgoritme er et alternativ til RSA.

Generer DSA parametre.

openssl dsaparam -out dsa.param 2048

Generer DSA-nøgle ved hjælp af de eksisterende parametre.

openssl gendsa -des3 -out ca.key dsa.param

X.509-certifikater

Nu skal vi vise nogle kommandoer til at administrere certifikater, underskriftsanmodninger og tilbagekaldelseslister.

Genererer certifikat

Genererer certifikat signatur anmodning ved hjælp af en eksisterende privat nøgle.

openssl req -ny-tast server-key.pem -out server-csr.csr

Oprettelse af en ny certifikat signatur anmodning og en ny RSA private nøgle 2048 bits lang.

openssl req -out service-csr.pem -nyw-nykeykey rsa: 2048 -noder -keyout service-key.pem

Bekræft certifikat underskrivningsanmodningen.

openssl req -in server-csr.pem-ikke-verificere -key server-key.pem

Undertegnelse af en certifikat anmodning.

openssl x509 -req -days 3650-signatur omkeykey -in ca.csr -out ca.crt

Genererer et selvsigneret certifikat med nøgle i batch-tilstand.

openssl req -subj "/ C = BR / L = Rio de Janeiro / O = Mit firma / CN = www.mycomp.com" -newkey rsa: 2048 -nodes -key domain domain -key -x509 -days 365-out domæne. crt

Dump certifikat datoer og info.

openssl x509 -noout-i apache.crt -text -purpose -dates -hash -ocspid

OpenSSL-certifikattekst info

Tilbagekald et certifikat.

openssl ca -revoke mycert.pem

Generering af en CRL.

openssl ca -gencrl -config openssl.cnf -crldays 7 -crlexts crl_ext -out $ crl_dir / file.crl

Parsering af objekter med ASN1 til standard output.

openssl asn1parse -in ca.

ASN1 Parse-certifikat

Konvertering af kodningsformater

Der vil være tidspunkter, at du bliver nødt til at konvertere et certifikat, der koder til en anden. Du kan muligvis konfronteres med dette, hvis du arbejder på et blandet miljø med Unices, Windows og Java.

Konvertering af DER, PEM og NET

Konverter et PEM-kodet certifikat til DER.

openssl x509 -inform PEM -outform DER -in ca.crt -out ca.der

Så er det modsatte, at konvertere en DER til PEM.

openssl x509 -inform DER -outform PEM -in ca.deroutoutpem

Test med s_client og s_server underkommandoer

Du kan foretage tests på nøgler / certifikater og tjenester med s_client og s_server.

Test dit certifikat og nøgle start s_server.

openssl s_server -key ca.key -cert ca.crt

Tilslutning til testserveren ved hjælp af s_client.

openssl s_client -host localhost -port 4433 -CApath / etc / ssl / certs /

En anden s_client-forbindelse, der bruger og viser certifikat, nøgle og i fejlfindingstilstand.

openssl s_client-connect localhost: 4433 -key ca.k'ey -cert ca.crt -debug -showcerts

Start et transportlag sikret til forbindelse til en mail-server.

openssl s_client-connect test.smtp.org:25 -starttls smtp -showcerts

Fil og streams kryptering med OpenSSL

Du kan også bruge OpenSSL til at kryptere data direkte på din computer.

Kryptere filer

Krypter filer ved hjælp af AES-256-CBC med SHA1 som Message Digest.

openssl enc -aes-256-cbc -md sha1 -e -in arquivo -out arquivo.crypt

Dekryptering går AES-256-CBC fil skal være som følger.

openssl enc -aes-256-cbc -md sha1 -d -in arquivo.crypt -out arquivo

Krypteringsfil med Triple DES.

openssl enc -des3 -e -in arquivo -out arquivo

Dekrypter Triple DES-krypteret fil.

openssl enc -des3 -d -in arquivo.crypt -out arquivo.decrypted

Krypterende strømme

Sammen med filer kan du også kryptere strømme som netværksstik, rør og andet * nix I / O. I det følgende eksempel bruger vi OpenSSL til sikkert at sende passwd-filen via et usikkert netværkskobling.

Server

Først opretter vi en Netcat-server med det, der venter på forbindelse. Du kan download Netcat her.

nc -l -p 99 8 | xz -d | openssl enc -aes-256-cbc -d> / klient / bkp / etc / passwd

Klient

Du kan nu bruge netcat som klient til at forbinde og sende din fil.

kat / etc / passwd | openssl enc -e -aes-256-cbc | xz -z | nc servidor 99

Konklusion

Dette er nogle af de mest brugte kommandoer, du kan bruge disse kommandoer til at administrere dine nøgler, certifikater og følsomme data. For mere information, så tag et kig på den officielle dokumentation, der vil du finde detaljer om disse og andre kommandoer og alt andet, der passer til dine behov.

Tak for læsning!

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.