21 OpenSSL-eksempler for å hjelpe deg i den virkelige verden
Opprett, administrer og konverter SSL-sertifikater med OpenSSL
En av de mest populære kommandoene i SSL for å lage, konvertere, administrere SSL-sertifikatene er OpenSSL.
Det vil være mange situasjoner hvor du må håndtere OpenSSL på ulike måter, og her har jeg listet dem opp for deg som et hendig jukseark.
I denne artikkelen vil jeg snakke om ofte brukte OpenSSL-kommandoer for å hjelpe deg i den virkelige verden.
Noen av forkortelsene knyttet til sertifikater.
- SSL – Secure Socket Layer
- CSR – forespørsel om sertifikatsignering
- TLS – Transport Layer Security
- PEM – Privacy Enhanced Mail
- DER – Distinguished Encoding Rules
- SHA – Secure Hash Algorithm
- PKCS – Public-Key Cryptography Standards
Merk: SSL/TLS operasjonskurs ville vært nyttig hvis du ikke er kjent med vilkårene.
Opprett en ny forespørsel om privat nøkkel og sertifikatsignering
openssl req -out tipsbilk.net.csr -newkey rsa:2048 -nodes -keyout tipsbilk.net.key
Kommandoen ovenfor vil generere CSR og en 2048-bits RSA-nøkkelfil. Hvis du har tenkt å bruke dette sertifikatet i Apache eller Nginx, må du sende denne CSR-filen til sertifikatutstederens myndighet, og de vil gi deg et signert sertifikat hovedsakelig i der- eller pem-format som du må konfigurere i Apache eller Nginx webserver .
Opprett et selvsignert sertifikat
openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem
Kommandoen ovenfor vil generere et selvsignert sertifikat og nøkkelfil med 2048-bit RSA. Jeg har også inkludert sha256 siden den anses som mest sikker for øyeblikket.
Tips: som standard vil det generere et selvsignert sertifikat som er gyldig i bare én måned, så du kan vurdere å definere –days-parameteren for å forlenge gyldigheten.
Eks: å ha egensignert gyldig i to år.
openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem
Bekreft CSR-filen
openssl req -noout -text -in tipsbilk.net.csr
Verifisering er viktig for å sikre at du sender CSR til utstedermyndigheten med de nødvendige opplysningene.
Opprett privat RSA-nøkkel
openssl genrsa -out private.key 2048
Hvis du bare trenger å generere RSA privat nøkkel, kan du bruke kommandoen ovenfor. Jeg har inkludert 2048 for sterkere kryptering.
Fjern passordfrase fra nøkkel
openssl rsa -in certkey.key -out nopassphrase.key
Hvis du bruker passordfrase i nøkkelfilen og bruker Apache, må du skrive inn passordet hver gang du starter. Hvis du irriterer deg over å skrive inn et passord, kan du bruke openssl rsa -in tipsbilk.net.key -check ovenfor for å fjerne passordfrasenøkkelen fra en eksisterende nøkkel.
Bekreft privat nøkkel
openssl rsa -in certkey.key –check
Hvis du tviler på nøkkelfilen din, kan du bruke kommandoen ovenfor for å sjekke.
Bekreft sertifikatfil
openssl x509 -in certfile.pem -text –noout
Hvis du ønsker å validere sertifikatdata som CN, OU, etc., kan du bruke en kommando ovenfor som vil gi deg sertifikatdetaljer.
Bekreft sertifikatunderskrivermyndigheten
openssl x509 -in certfile.pem -noout -issuer -issuer_hash
Sertifikatutsteders myndighet signerer hvert sertifikat og i tilfelle du trenger å sjekke dem.
Sjekk Hash-verdien til et sertifikat
openssl x509 -noout -hash -in bestflare.pem
Konverter DER til PEM-format
openssl x509 –inform der –in sslcert.der –out sslcert.pem
Vanligvis vil sertifiseringsmyndigheten gi deg SSL-sertifikat i .der-format, og hvis du trenger å bruke dem i apache- eller .pem-format, vil kommandoen ovenfor hjelpe deg.
Konverter PEM til DER-format
openssl x509 –outform der –in sslcert.pem –out sslcert.der
I tilfelle du må endre .pem-format til .der
Konverter sertifikat og privat nøkkel til PKCS#12-format
openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem
Hvis du trenger å bruke et sertifikat med java-applikasjonen eller med andre som bare aksepterer PKCS#12-format, kan du bruke kommandoen ovenfor, som vil generere en enkelt pfx som inneholder sertifikat- og nøkkelfil.
Tips: du kan også inkludere kjedesertifikat ved å bestå –chain som nedenfor.
openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem
Opprett CSR med en eksisterende privat nøkkel
openssl req –out certificate.csr –key existing.key –new
Hvis du ikke vil opprette en ny privat nøkkel i stedet for å bruke en eksisterende, kan du gå med kommandoen ovenfor.
Sjekk innholdet i PKCS12-formatsertifikatet
openssl pkcs12 –info –nodes –in cert.p12
PKCS12 er et binært format slik at du ikke kan se innholdet i notisblokk eller et annet redigeringsprogram. Kommandoen ovenfor vil hjelpe deg å se innholdet i PKCS12-filen.
Konverter PKCS12-format til PEM-sertifikat
openssl pkcs12 –in cert.p12 –out cert.pem
Hvis du ønsker å bruke eksisterende pkcs12-format med Apache eller bare i pem-format, vil dette være nyttig.
Test SSL-sertifikatet for en bestemt URL
openssl s_client -connect yoururl.com:443 –showcerts
Jeg bruker dette ganske ofte for å validere SSL-sertifikatet til en bestemt URL fra serveren. Dette er veldig nyttig for å validere protokollen, chifferen og sertifikatdetaljene.
Finn ut OpenSSL-versjonen
openssl version
Hvis du er ansvarlig for å sikre at OpenSSL er sikker, er sannsynligvis en av de første tingene du må gjøre å bekrefte versjonen.
Sjekk utløpsdatoen for PEM-filsertifikatet
openssl x509 -noout -in certificate.pem -dates
Nyttig hvis du planlegger å overvåke for å sjekke gyldigheten. Den vil vise deg en dato i notBefore og not After syntaks. notAfter er en du må bekrefte for å bekrefte om et sertifikat er utløpt eller fortsatt gyldig.
Eks:
[[email protected] opt]# openssl x509 -noout -in bestflare.pem -dates notBefore=Jul 4 14:02:45 2015 GMT notAfter=Aug 4 09:46:42 2015 GMT [[email protected] opt]#
Sjekk sertifikatets utløpsdato for SSL URL
openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate
En annen nyttig hvis du planlegger å overvåke utløpsdatoen for SSL-sertifikatet eksternt eller bestemt URL.
Eks:
[[email protected] opt]# openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate notAfter=Dec 8 00:00:00 2015 GMT
Sjekk om SSL V2 eller V3 er akseptert på URL
For å sjekke SSL V2
openssl s_client -connect secureurl.com:443 -ssl2
For å sjekke SSL V3
openssl s_client -connect secureurl.com:443 –ssl3
For å sjekke TLS 1.0
openssl s_client -connect secureurl.com:443 –tls1
For å sjekke TLS 1.1
openssl s_client -connect secureurl.com:443 –tls1_1
For å sjekke TLS 1.2
openssl s_client -connect secureurl.com:443 –tls1_2
Hvis du sikrer en webserver og trenger å validere om SSL V2/V3 er aktivert eller ikke, kan du bruke kommandoen ovenfor. Hvis den er aktivert, vil du få «CONNECTED» ellers «handshake failure.»
Bekreft om den bestemte chifferen er akseptert på URL
openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443
Hvis du jobber med sikkerhetsfunn og pennetestresultater viser at noen av de svake chifferene er akseptert, kan du bruke kommandoen ovenfor for å validere.
Selvfølgelig må du endre chiffer og URL, som du vil teste mot. Hvis den nevnte chifferen godtas, vil du få «CONNECTED» ellers «handshake failure.»
Jeg håper kommandoene ovenfor hjelper deg å vite mer om OpenSSL for å administrere SSL-sertifikater for nettstedet ditt.