GNU/Linux >> Znalost Linux >  >> Linux

20 Příkazy OpenSSL Příklady, které musíte znát

OpenSSL je open source sada nástrojů používaná k implementaci protokolů Secure Socket Layer (SSL) a Transport Layer Security (TLS). Sada nástrojů je nabitá spoustou funkcí, které lze provádět pomocí různých možností. Jako správce Linuxu musíte znát příkazy openssl, abyste zabezpečili svou síť, což zahrnuje testování serverů POP, IMAP, certifikáty https, generování klíčů s vlastním podpisem, srovnávání rychlostí atd…

Koncový uživatel může také využít příkazy openssl ke generování CSR (Certificate Signing Requests), převodu PEM na PKCS12, PKC12 na PEM, ověřování certifikátů, extrahování rozlišovacího jména atd…

OK! Tady to je,

1. Jak nainstalovat OpenSSL Toolkit?

Dělat to není nic těžkého. Pokud jste na svém počítači nakonfigurovali YUM, spusťte níže uvedený příkaz.

$yum install openssl
$yum install openssl-devel

Pokud používáte Ubuntu, příkaz bude vypadat takto.

$apt-get install openssl
$apt-get install openssl-devel

Nainstalujte OpenSSL ze zdroje

Můžete si také stáhnoutzdrojový kód OpenSSL a zkompilovat, jak je vysvětleno zde .

2. Jak zkontrolovat verzi OpenSSL?

$openssl versionOpenSSL 1.0.0-fips 29. března 2010

Můžete také získat podrobné informace pomocí volby „-a“,

$openssl verze -a

OpenSSL 1.0.0-fips 29. března 2010
postaveno dne:Po 4. březen 22:19:53 UTC 2013
platforma:linux-x86_64
volby:bn(64,64) md2(int ) rc4(8x,int) des(idx,cisc,16,int) blowfish(idx)
kompilátor:gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DMDLDKRB4 -MITTERM -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -exceptions -fstack-protector –param=ssp-buffer-size=4 -m64 -mtune=generic -Wa,–noexecstack -DMD32_REG_T=int -DOPENSSSL_IA32 -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DWHIRLPOOL_ASM
OPENSSLDIR:“/etc/pki/tls”
motory:aesni dynamic

Používá váš produkční server OpenSSL verze 1.0.1e-fips? ? pak zde je závažná zranitelnost OpenSSL hlášená v březnu 2015 a náš tým bezpečnostních expertů také navrhl rychlou opravu.

3. Jak vypsat seznam možností nápovědy openssl?

Identifikace seznamu možností dostupných v openssl není uživatelsky přívětivá. Například pomocí možností „-h“ nebo „-help“ nebo „help“ se zobrazí „Neplatná možnost“, ale takto můžete získat seznam možností podporovaných openssl. Zadejte neplatnou možnost pro openssl a zobrazí se seznam platných možností.

openssl -hopenssl:Chyba:'-h' je neplatný příkaz.

Standardní příkazy
asn1parse ca ciphers cms
crl crl2pkcs7 dgst dh
dhparam dsa dsaparam enc
engine errstr gendh gendsa
genpkey genrsa nseq>7 pwkcsp1
pkey pkeyparam pkeyutl prime
rand req rsa rsautl
s_client s_server s_time sess_id
smime speed spkac ts
ověření verze x509

Příkazy Message Digest (další podrobnosti viz příkaz `dgst‘)
md2 md4 md5 rmd160
sha sha1

Šifrovací příkazy (další podrobnosti viz příkaz 'enc')
aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb
aes-256-cbc aes-256- ecb base64 bf
bf-cbc bf-cfb bf-ecb bf-ofb
camellia-128-cbc camellia-128-ecb camellia-192-cbc camellia-192-ecb
camellia-256 -cbc camellia-256-ecb cast cast-cbc
cast5-cbc cast5-cfb cast5-ecb cast5-ofb
des des-cbc des-cfb des-ecb
des-ede des- ede-cbc des-ede-cfb des-ede-ofb
des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb
des-ofb des3 desx rc2
rc2 -40-cbc rc2-64-cbc rc2-cbc rc2-cfb
rc2-ecb rc2-ofb rc4 rc4-40
seed semeno-cbc seed-cfb seed-ecb

Nyní lze stejný tip použít také pro získání nápovědy pro dílčí příkazy.

$openssl crl -hunknown option -husage:crl args

-informovat arg – vstupní formát – výchozí PEM (DER nebo PEM)
-outformovat arg – výstupní formát – výchozí PEM
-text – vytisknout verzi textového formátu
-in arg – vstupní soubor – výchozí stdin
-out arg – výstupní soubor – výchozí stdout
-hash – tisk hodnoty hash
-fingerprint – tisk otisku crl
-vydavatel – vydavatel tisku DN
-lastupdate – pole lastUpdate
-nextupdate – pole nextUpdate
-crlnumber – tisk čísla CRL
-noout – žádný výstup CRL
-CAfile name – ověření CRL pomocí certifikátů v souboru “ name”
-CApath dir – ověření CRL pomocí certifikátů v “dir”
-nameopt arg – různé možnosti názvu certifikátu

4. Jak vypsat seznam podporovaných šifer v openssl?

$openssl šifry -vDHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac =SHA1DHE-RSA-CAMELLIA256-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(256) Mac=SHA1DHE-DSS-CAMELLIA256-SHA SSLv3 Kx=DH Au=DSS Enc=Camellia(256) Mac=SHA56-KSHASLx SHAES2 =RSA Au=RSA Enc=AES(256) Mac=SHA1CAMELLIA256-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(256) Mac=SHA1PSK-AES256-CBC-SHA SSLv3 Kx=PSK Au=PSK Enc=AES(256) ) Mac=SHA1EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac =SHA1DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1PSK-3DES-EDE-CBC-SHA SSLv3 Kx=PSK Au=PSK Enc=3DES(168) Mac=SHA1KRB5-DES-CBC -SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=SHA1KRB5-DES-CBC3-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=MD5DHE-RSA-AES128-SHA=SSLv3 Au=RSA Enc=AES(128) Mac=SHA1DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1DHE-RSA-SEED-SHA SSLv3 Kx=DH Au=RSA Enc=SEED (128) Mac=SHA1DHE-D SS-SEED-SHA SSLv3 Kx=DH Au=DSS Enc=SEED(128) Mac=SHA1DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA1DHE-DSS-CAMELLIA123-SHA S Kx=DH Au=DSS Enc=Camellia(128) Mac=SHA1AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1SEED-SHA SSLv3 Kx=RSA Au=RSA Enc=SEED(128) Mac=SHA1CAMELLIA128-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(128) Mac=SHA1PSK-AES128-CBC-SHA SSLv3 Kx=PSK Au=PSK Enc=AES(128) Mac=SHA1RC4=SHARSSSLv3 Kx Enc=RC4(128) Mac=SHA1RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5PSK-RC4-SHA SSLv3 Kx=PSK Au=PSK Enc=RC4(128) Mac=SHA1KRB5-RC4- SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=SHA1KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=MD5EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH Au =RSA Enc=DES(56) Mac=SHA1EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH Au=DSS Enc=DES(56) Mac=SHA1DES-CBC-SHA SSLv3 Kx=RSA Au=RSA Enc=DES( 56) Mac=SHA1KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=SHA1KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=MD5EXP- EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH( 512) Au=RSA Enc=DES(40) Mac=SHA1 exportEXP-EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH(512) Au=DSS Enc=DES(40) Mac=SHA1 exportEXP-DES-CBC- SHA SSLv3 Kx=RSA(512) Au=RSA Enc=DES(40) Mac=SHA1 exportEXP-RC2-CBC-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC2(40) Mac=MD5 exportEXP-KRB5- RC2-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC2(40) Mac=SHA1 exportEXP-KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(40) Mac=SHA1 exportEXP-KRB5- RC2-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC2(40) Mac=MD5 exportEXP-KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(40) Mac=MD5 exportEXP-RC4- MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=export MD5EXP-KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(40) Mac=SHA1 exportEXP-KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(40) Mac=export MD5

5. Jak vygenerovat žádost o podpis certifikátu (CSR)?

Odeslání žádosti o podpis certifikátu zahrnuje určité formality a celý proces se u jednotlivých certifikačních úřadů (CA) liší. Požadavek však může být vygenerován na straně klienta, pokud certifikační autority neposkytují žádné rozhraní pro generování certifikátu.

Když máte openssl, co ještě potřebujete?

$openssl req -new -newkey rsa:1024 -nodes -keyout key.pem -out req.pem

Tady,

req:volba použitá ke generování požadavku.

-new:vygenerovat nový požadavek

-newkey:vygeneruje nový klíč

rsa:1024:Použitý algoritmus a délka klíče 1024 bitů. Lze jej nahradit rsa:2048, rsa:4096 atd..

-keyout:výstup nového klíče v souboru key.pem.

-out:vypíše požadavek do souboru „req.pem“.

Ukázkový výstup,

$openssl req -new -newkey rsa:1024 -nodes -keyout key.pem -out req.pemGenerování 1024bitového soukromého klíče RSA................... ................................................................... ............................++++++....++++++zápis nového soukromého klíče do ' key.pem'-----Budete požádáni o zadání informací, které budou začleněny do vaší žádosti o certifikát. To, co se chystáte zadat, se nazývá rozlišovací jméno nebo DN. Existuje poměrně málo polí, ale můžete nechat některá prázdná U některých polí bude výchozí hodnota. Pokud zadáte ., pole zůstane prázdné.-----Název země (2 písmenný kód) [XX]:INState nebo Province Name (celé název) []:CHELokalita Název (např. město) [Výchozí město]:CHNázev organizace (např. společnost) [Výchozí společnost Ltd]:F4 Název organizační jednotky (např. sekce) []:ITCommon Name (např. vaše jméno nebo vaše název hostitele serveru) []:mujserverE-mailová adresa []:[email protected]

Zadejte prosím následující atributy „extra“,
které mají být zaslány s vaší žádostí o certifikát
Heslo výzvy []:
Volitelný název společnosti []:

Výstupní soubory,

$ls-rw-r--r--. 1 kořenový kořen 916 28. října 13:06 klíč.pem-rw-r--r--. 1 kořenový kořen 676 28. října 13:06 req.pem

6. Jak vygenerovat klíče s vlastním podpisem pomocí Openssl?

Pro nasazení na servery můžete vygenerovat certifikáty s vlastním podpisem. Chcete-li to provést, spusťte níže uvedený příkaz. OpenSSL standardně používá k podepisování vaší žádosti o certifikát algoritmus sha1. Jako lepší bezpečnostní opatření můžete také explicitně vygenerovat x509 SHA256 hash certifikát s vlastním podpisem [By the by sha1 je již rozbitý !].

$openssl req -x509 -days 365 -nodes -newkey rsa:2048 -keyout key.pem -out cert.pem

Tady,

x509:je standard digitálního certifikátu

-dny:platnost vašeho certifikátu, většinou jeden rok.

7. Jak otestovat certifikát vzdáleného webového serveru?

K zobrazení informací o certifikátu vzdáleného serveru můžete použít volbu klienta openssl,

$openssl s_client -connect google.com:443 -showcerts

Ukázkový výstup při dotazu na google.com,

$openssl s_client -connect google.com:443 -showcertsCONNECTED(00000003)depth=3 C =USA, O =Equifax, OU =Equifax Secure Certificate Authority Verify return:1depth=2 C =USA, O =GeoTrust Inc., CN =GeoTrust Global CAverify return:1depth=1 C =USA, O =Google Inc, CN =Google Internet Authority G2verify return:1depth=0 C =USA, ST =Kalifornie, L =Mountain View, O =Google Inc, CN =*.googl e.comverify return:1---Certificate chain0 s:/C=US/ST=Kalifornie/L=Mountain View/O=Google Inc/CN=*.google.comi:/C=US/O=Google Inc/CN=Google Internet Authority G2-----BEGIN CERTIFICATE-----MIIHIDCCBgigAwIBAgIIPRfoBTWJubswDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UEBhMCVVMxEzARBgNVBAoTCkdvb2dsxZTAdBgprem 

—–KONCOVÝ CERTIFIKÁT—–

Certifikát serveru
předmět=/C=US/ST=Kalifornie/L=Mountain View/O=Google Inc/CN=*.google.com
vydavatel=/C=US/O=Google Inc/CN=Google Internet Authority G2

Nebyly odeslány žádné názvy CA certifikátů klienta

Navázání spojení SSL bylo přečteno 4055 bajtů a zapsaných 426 bajtů

Nové, TLSv1/SSLv3, Šifra je RC4-SHA
Veřejný klíč serveru je 2048 bitů
Je podporováno bezpečné opětovné vyjednávání
Komprese:ŽÁDNÁ
Rozšíření:ŽÁDNÉ
SSL-Relace:
Protokol:TLSv1
Šifra:RC4-SHA
ID relace:7036D2353DD2A38D13A24F2791A65FAD5B9xDEB63788CBB9xFD537388C54brEB637388
Master-Key:113AAED5B1E5A23CA33B07AF37DD464BA671922EF5274F116FB7C7835A0749B9 48B6445AC6F10CEB78C0713727713D81
KEY-ARG:Tip na životnost lístku:100800 (sekundy)
Test relace TLS:
0000 – d2 e0 d9 0a 1c 92 16 a7-9f a6 62 4e 06 94 24 9b ……….bN..$.
0010 – a2 da 35 9f 1b 57 1f f7-ae c2 c8 c1 28 84 48 c0 ..5..W……(.H.
0020 – ca 97 87 79 7e c3 49 13-78 ed 6b cc 6d 28 90 7a ~.I.x.k.m(.z
0030 – 6d 1d 11 af ac být 74 d9-2c b4 c6 2d 2e fc 7d b1 m…..t.,..-..}.
0040 – ec 23 9d c3 ec 49 80 77-bf 49 41 57 bf a3 3a 1a .#…I.w.IAW..:.
0050 – d6 3d c1 61 60 d6 e3 bf-90 6e 96 2f 4 .a`….n/M.6x}
0060 – 7d b0 bd e0 df 22 09 01-e3 11 09 67 f1 5b 1e 49 }….“…..g.[.I
0070 – 42 02 eb 6c 6d a4 d6 5b-e8 ce ef 05 d5 f7 19 a9 B..lm..[……..
0080 – 36 77 66 8b 74 38 09 bf-83c f7b 3a 14 fc 6wf.t8..l.(7.:..
0090 – b2 e6 dd 2b …+

Čas zahájení:1382946144
Časový limit:300 (s)
Ověřte návratový kód:0 (ok)

8. Jak ověřit certifikát SSL?

$openssl ověřit soubor pem$openssl ověřit mycert.pem

Ukázkový výstup,

mycert.pem:OK

Jako výstup byste měli vidět OK. Pokud například vypršela platnost certifikátu, zobrazí se vám stížnost. OpenSSL nemůže ověřit všechny certifikáty. Například certifikáty s vlastním podpisem nejsou pro OpenSSL důvěryhodné. OpenSSL důvěřuje certifikátu ověřením certifikátu vydavatele, který se nachází pod „/usr/lib/ssl“ (toto umístění se však může lišit OS od OS). Pomocí jednoduchých příkazů OpenSSL můžete zjistit, jaký podpisový algoritmus se používá v certifikátech SSL zabezpečených webových stránek.

Chcete-li zjistit, jaké certifikační autority OpenSSL uznává nebo kterým důvěřuje, níže uvedený příkaz odhalí adresář, ve kterém jsou uloženy důvěryhodné certifikáty CA.

Verze $openssl -d

Ukázkový výstup,

OPENSSLDIR:"/etc/pki/tls"

9. Jak ověřit nebo zobrazit informace o certifikátu serveru POP?

$openssl s_client -connect mailserver:995

10. Jak otestovat nebo ověřit servery IMAP?

$openssl s_client -connect mailserver:993

11. Jak zobrazit nebo otestovat certifikát .PEM?

$ openssl x509 -text -in usercert.pem

Ukázkový výstup,

Certifikát:Data:Verze:3 (0x2)Sériové číslo:1504 (0x5e0)Podpisový algoritmus:sha1WithRSAEšifrování:::::::::::::::::::::::::::::::::::::::::

12. Jak zobrazit DN certifikátu, platnost, hash?

$openssl x509 -subject -in usercert.pem

Získejte informace o emitentovi

openssl x509 -noout -in usercert.pem -issuer

Získejte informace o platnosti

openssl x509 -noout -in usercert.pem -dates

Získejte hash hodnotu certifikátu

openssl x509 -noout -in usercert.pem -hash

Získejte otisk prstu MD5

openssl x509 -noout -in usercert.pem -fingerprint

13. Jak převést certifikát .PEM do formátu .P12 nebo PKCS#12?

$ openssl pkcs12 -export -inkey userkey.pem -in usercert.pem -out mypcks.p12

nebo

$ openssl pkcs12 -export -inkey userkey.pem -in usercert.pem -out mypcks.pfx

Při převodu souborů .PEM na PFX nebo P12 budete požádáni o zadání hesla, které zabezpečilo váš soukromý klíč. Nakonec bude výstupní formát také zabezpečen heslem.

14. Jak převést certifikát .P12 do formátu .PEM?

Formáty .P12 nebo PFX nebo PCKS#12 budou obsahovat veřejný i soukromý klíč. Export souboru .p12 do .PEM poskytne dva soubory.

Chcete-li extrahovat veřejný klíč bez hesla, spusťte níže uvedený příkaz.

openssl pkcs12 -in mycert.p12 -out mycert.pem -nodes

Chcete-li extrahovat heslem chráněné soukromé, spusťte níže uvedený příkaz.

openssl pkcs12 -in mycert.p12 -out mycert.pem

Nyní byste měli mít tyto soubory,

usercert.pemuserkey.pem

15. Jak vygenerovat hash MD5 nebo SHA1 pro soubor?

$openssl dgst -md5 foo.gifMD5(foo.gif)=a303ed7ce439738c2ce9f0791d9799c1openssl dgst -sha1 foo.gifSHA1(foo.gif)=e525a26d41330125a26d4130 

16. Jak base64 kódovat soubor pomocí openssl?

Dovolte mi vytvořit ukázkový soubor

$more tg.txt Chystám se být zakódován

Pro kódování base64 spusťte níže uvedený příkaz

$openssl enc -base64 -in tg.txt -out tg-en.txt

Zakódovaná data jsou uložena v „tg-en.txt“

$more tg-en.txtSSBhbSBnb2luIHRvIGJlIGVuY29kZWQK

17. Jak dekódovat soubor kódovaný base64 pomocí openssl?

$openssl enc -base64 -d -in tg-en.txt Chystám se být zakódován

nebo

$echo "SSBhbSBnb2luIHRvIGJlIGVuY29kZWQK" | openssl enc -base64 -d

18. Jak zašifrovat soubor pomocí openssl?

Jak již bylo řečeno, zkontrolujte dostupné šifry pomocí,

Šifry $openssl -v

Chcete-li zašifrovat tg.txt do tg.enc pomocí jedné z podporovaných šifer

openssl enc -aes-256-cbc -salt -in tg.txt -out tg.enc

Získáte binární soubor tg.enc, což je zašifrovaný soubor.

19. Jak dešifrovat soubor pomocí Openssl?

Chcete-li dešifrovat zašifrovaný binární soubor, měli byste si zapamatovat šifru a přístupovou frázi použité během šifrování.

openssl enc -d -aes-256-cbc -in tg.enc

20. Jak zkontroluji rychlost svého systému pomocí možnosti benchmarkingu Openssl?

$openssl rychlostUskutečnění md2 za 3 s na 16 blocích velikosti:373915 md2 za 3,00 sVykonání md2 za 3 s na blocích o velikosti 64:209 326 md2 za 3,00 s Provedení md2 za 3,0 s za 0,0 s 0 za 0,0 s Velikost bloků md2:19460 md2 za 3,00 sUskutečnění md2 za 3s na blocích o velikosti 8192:2506 md2 za 3,00sVykonání md4 za 3s za 16 bloků velikosti:8402125 md4 za 3,0 s 3,00 za 3,00 s 3,00 s na 256 velikostních blocích:3877820 md4 za 3,00 sProvádění md4 pro 3s na 1024 velikostních blocích:1473222 md4 za 3,00sVytvoření md4 na 3s na 3,00 s velikost bloků:218452051 6m za 5 mds :::::::::::::::::::::::::::::::::::::::::::::::::::::::

OpenSSL přichází s vestavěnou možností benchmarkingu nazvanou „rychlost“. Říká vám, kolik operací může provést za daný čas.

Mít víc? Řekněte nám to v komentářích.


Linux
  1. 10 základních linuxových příkazů, které potřebujete znát

  2. 6 Možnosti příkazu OpenSSL, které by měl znát každý správce systému

  3. 7 síťových příkazů Linuxu, které by měl znát každý správce systému

  1. 12 zábavných příkazů Linuxu, které vás mohou rozesmát

  2. Redhat vs Ubuntu:15 základních faktů, které musíte vědět

  3. 15 příkladů rozšíření historie Linuxu Bash, které byste měli vědět

  1. Příkazy Nginx, které byste měli vědět

  2. Příkazy Apache, které byste měli znát

  3. Příkazy Nmap s příklady