21 Příklady OpenSSL, které vám pomohou v reálném světě

Vytvářejte, spravujte a převádějte certifikáty SSL pomocí OpenSSL

Jedním z nejoblíbenějších příkazů v SSL pro vytváření, převod a správu certifikátů SSL je OpenSSL.

Situací, kdy se budete muset vypořádat s OpenSSL různými způsoby, bude mnoho a zde jsem je pro vás uvedl jako praktický cheat sheet.

V tomto článku budu hovořit o často používaných příkazech OpenSSL, které vám pomohou v reálném světě.

Některé zkratky se týkají certifikátů.

  • SSL – Secure Socket Layer
  • CSR – Žádost o podpis certifikátu
  • TLS – Transport Layer Security
  • PEM – Privacy Enhanced Mail
  • DER – Distinguished Encoding Rules
  • SHA – Secure Hash Algorithm
  • PKCS – standardy pro šifrování veřejného klíče

Poznámka: Kurz provozu SSL/TLS bylo by užitečné, pokud nejste obeznámeni s podmínkami.

Vytvořte nový soukromý klíč a žádost o podpis certifikátu

openssl req -out etechblog.cz.csr -newkey rsa:2048 -nodes -keyout etechblog.cz.key

Výše uvedený příkaz vygeneruje CSR a 2048bitový soubor klíčů RSA. Pokud máte v úmyslu použít tento certifikát v Apache nebo Nginx, musíte tento soubor CSR odeslat certifikační autoritě a ta vám dá podepsaný certifikát většinou ve formátu der nebo pem, který musíte nakonfigurovat na webovém serveru Apache nebo Nginx. .

Vytvořte certifikát s vlastním podpisem

openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Výše uvedený příkaz vygeneruje certifikát s vlastním podpisem a soubor klíče s 2048bitovým RSA. Zahrnul jsem také sha256, protože je v současné době považován za nejbezpečnější.

Tip: ve výchozím nastavení vygeneruje certifikát s vlastním podpisem platný pouze jeden měsíc, takže můžete zvážit definování parametru –days pro prodloužení platnosti.

Příklad: mít vlastnoruční podpis platný po dobu dvou let.

openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Ověřte soubor CSR

openssl req -noout -text -in etechblog.cz.csr

Ověření je nezbytné, abyste se ujistili, že posíláte CSR orgánu vydavatele s požadovanými podrobnostmi.

Vytvořte soukromý klíč RSA

openssl genrsa -out private.key 2048

Pokud potřebujete vygenerovat soukromý klíč RSA, můžete použít výše uvedený příkaz. Zahrnul jsem 2048 pro silnější šifrování.

Odstraňte přístupovou frázi z klíče

openssl rsa -in certkey.key -out nopassphrase.key

Pokud v souboru klíčů používáte přístupovou frázi a používáte Apache, musíte při každém spuštění zadat heslo. Pokud vás štve zadávání hesla, můžete použít výše uvedený openssl rsa -in etechblog.cz.key -check k odstranění klíče přístupové fráze z existujícího klíče.

Ověřte soukromý klíč

openssl rsa -in certkey.key –check

Pokud pochybujete o svém souboru klíče, můžete pro kontrolu použít výše uvedený příkaz.

Ověřte soubor certifikátu

openssl x509 -in certfile.pem -text –noout

Pokud byste chtěli ověřit data certifikátu, jako je CN, OU atd., můžete použít výše uvedený příkaz, který vám poskytne podrobnosti o certifikátu.

Ověřte certifikační autoritu

openssl x509 -in certfile.pem -noout -issuer -issuer_hash

Vydavatel certifikátů podepisuje každý certifikát a v případě, že je potřebujete zkontrolovat.

Zkontrolujte hodnotu hash certifikátu

openssl x509 -noout -hash -in bestflare.pem

Převést DER do formátu PEM

openssl x509 –inform der –in sslcert.der –out sslcert.pem

Certifikační autorita vám obvykle poskytne certifikát SSL ve formátu .der, a pokud je potřebujete použít ve formátu apache nebo .pem, výše uvedený příkaz vám pomůže.

Převést PEM do formátu DER

openssl x509 –outform der –in sslcert.pem –out sslcert.der

V případě, že potřebujete změnit formát .pem na .der

Převeďte certifikát a soukromý klíč do formátu PKCS#12

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem

Pokud potřebujete použít certifikát s java aplikací nebo s jakoukoli jinou, která přijímá pouze formát PKCS#12, můžete použít výše uvedený příkaz, který vygeneruje jeden pfx obsahující soubor certifikátu a klíče.

Tip: Můžete také zahrnout řetězový certifikát předáním –řetězec, jak je uvedeno níže.

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem

Vytvořte CSR pomocí existujícího soukromého klíče

openssl req –out certificate.csr –key existing.key –new

Pokud nechcete vytvářet nový soukromý klíč namísto použití stávajícího, můžete použít výše uvedený příkaz.

Zkontrolujte obsah certifikátu formátu PKCS12

openssl pkcs12 –info –nodes –in cert.p12

PKCS12 je binární formát, takže nebudete moci zobrazit obsah v poznámkovém bloku nebo jiném editoru. Výše uvedený příkaz vám pomůže zobrazit obsah souboru PKCS12.

Převeďte formát PKCS12 na certifikát PEM

openssl pkcs12 –in cert.p12 –out cert.pem

Pokud chcete použít existující formát pkcs12 s Apache nebo jen ve formátu pem, bude to užitečné.

Test SSL certifikátu konkrétní URL

openssl s_client -connect yoururl.com:443 –showcerts

Používám to poměrně často k ověření certifikátu SSL konkrétní adresy URL ze serveru. To je velmi užitečné pro ověření podrobností protokolu, šifry a certifikátu.

Zjistěte verzi OpenSSL

openssl version

Pokud jste odpovědní za zabezpečení OpenSSL, pak pravděpodobně jednou z prvních věcí, které musíte udělat, je ověřit verzi.

Zkontrolujte datum vypršení platnosti certifikátu souboru PEM

openssl x509 -noout -in certificate.pem -dates

Užitečné, pokud plánujete zavést nějaké monitorování pro kontrolu platnosti. Ukáže vám datum v syntaxi notBefore a notAfter. notAfter je jeden, který budete muset ověřit, abyste potvrdili, že platnost certifikátu vypršela nebo je stále platný.

Příklad:

[[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]#

Zkontrolujte datum vypršení platnosti certifikátu adresy URL SSL

openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate

Další užitečné, pokud plánujete vzdáleně sledovat datum vypršení platnosti certifikátu SSL nebo konkrétní URL.

Příklad:

[[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

Zkontrolujte, zda je na URL akceptováno SSL V2 nebo V3

Chcete-li zkontrolovat SSL V2

openssl s_client -connect secureurl.com:443 -ssl2

Chcete-li zkontrolovat SSL V3

openssl s_client -connect secureurl.com:443 –ssl3

Chcete-li zkontrolovat TLS 1.0

openssl s_client -connect secureurl.com:443 –tls1

Kontrola TLS 1.1

openssl s_client -connect secureurl.com:443 –tls1_1

Kontrola TLS 1.2

openssl s_client -connect secureurl.com:443 –tls1_2

Pokud zabezpečujete webový server a potřebujete ověřit, zda je SSL V2/V3 povoleno či nikoli, můžete použít výše uvedený příkaz. Pokud je aktivován, zobrazí se „SPOJENO“, jinak „selhání handshake“.

Ověřte, zda je konkrétní šifra na URL akceptována

openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443

Pokud pracujete na zjištěních zabezpečení a výsledky testů pera ukazují, že některé slabé šifry jsou akceptovány, pak k ověření můžete použít výše uvedený příkaz.

Samozřejmě budete muset změnit šifru a URL, proti kterým chcete testovat. Pokud je zmíněná šifra přijata, dostanete „CONNECTED“, jinak „selhání handshake“.

Doufám, že výše uvedené příkazy vám pomohou dozvědět se více o OpenSSL pro správu certifikátů SSL pro váš web.