SSL-tanúsítványok létrehozása, kezelése és konvertálása az OpenSSL-lel
Az SSL egyik legnépszerűbb parancsa az SSL-tanúsítványok létrehozására, konvertálására és kezelésére az OpenSSL.
Sok olyan helyzet lesz, amikor különféle módokon kell kezelnie az OpenSSL-t, és itt felsoroltam ezeket, mint praktikus csalólapot.
Ebben a cikkben a gyakran használt OpenSSL parancsokról fogok beszélni, amelyek segítenek a való világban.
A tanúsítványokhoz kapcsolódó rövidítések egy része.
- SSL – Secure Socket Layer
- CSR – Tanúsítvány aláírási kérelem
- TLS – Transport Layer Security
- PEM – fokozott adatvédelemmel ellátott levelezés
- DER – Megkülönböztetett kódolási szabályok
- SHA – Secure Hash Algorithm
- PKCS – Nyilvános kulcsú kriptográfiai szabványok
Jegyzet: SSL/TLS üzemeltetési tanfolyam hasznos lenne, ha nem ismeri a feltételeket.
Hozzon létre egy új privát kulcsot és tanúsítvány-aláírási kérelmet
openssl req -out etoppc.com.csr -newkey rsa:2048 -nodes -keyout etoppc.com.key
A fenti parancs CSR-t és egy 2048 bites RSA-kulcsfájlt generál. Ha ezt a tanúsítványt Apache-ban vagy Nginx-ben kívánja használni, akkor el kell küldenie ezt a CSR-fájlt a tanúsítványkiadó hatóságnak, és ők adnak egy aláírt tanúsítványt többnyire der vagy pem formátumban, amelyet be kell állítania Apache vagy Nginx webszerveren. .
Hozzon létre egy önaláírt tanúsítványt
openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem
A fenti parancs egy önaláírt tanúsítványt és kulcsfájlt hoz létre 2048 bites RSA-val. Beépítettem az sha256-ot is, mivel jelenleg ez a legbiztonságosabb.
Tipp: alapértelmezés szerint csak egy hónapig érvényes önaláírt tanúsítványt generál, így érdemes lehet –days paramétert megadni az érvényesség meghosszabbításához.
Pl.: két évig érvényes önaláírással.
openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem
Ellenőrizze a CSR-fájlt
openssl req -noout -text -in etoppc.com.csr
Az ellenőrzés elengedhetetlen annak biztosításához, hogy a CSR-t elküldje a kibocsátó hatóságnak a szükséges adatokkal.
Hozzon létre RSA privát kulcsot
openssl genrsa -out private.key 2048
Ha csak RSA privát kulcsot kell létrehoznia, használhatja a fenti parancsot. Beépítettem a 2048-at az erősebb titkosítás érdekében.
Távolítsa el a jelszót a kulcsból
openssl rsa -in certkey.key -out nopassphrase.key
Ha jelszót használ a kulcsfájlban és Apache-t, akkor minden indításakor meg kell adnia a jelszót. Ha bosszantja a jelszó megadása, akkor a fenti openssl rsa -in etoppc.com.key -check segítségével eltávolíthatja a jelszókulcsot egy meglévő kulcsból.
Privát kulcs ellenőrzése
openssl rsa -in certkey.key –check
Ha kétségei vannak a kulcsfájlban, a fenti paranccsal ellenőrizheti.
Igazolási fájl ellenőrzése
openssl x509 -in certfile.pem -text –noout
Ha ellenőrizni szeretné a tanúsítványadatokat, mint például a CN, OU stb., akkor használhat egy fenti parancsot, amely megadja a tanúsítvány részleteit.
Ellenőrizze a tanúsítvány aláíró hatóságát
openssl x509 -in certfile.pem -noout -issuer -issuer_hash
A tanúsítványt kibocsátó hatóság minden tanúsítványt aláír, és arra az esetre, ha ellenőriznie kell őket.
Ellenőrizze a tanúsítvány hash értékét
openssl x509 -noout -hash -in bestflare.pem
A DER konvertálása PEM formátumba
openssl x509 –inform der –in sslcert.der –out sslcert.pem
Általában a tanúsító hatóság .der formátumban adja meg az SSL-tanúsítványokat, és ha apache vagy .pem formátumban kell használni, akkor a fenti parancs segít.
PEM konvertálása DER formátumba
openssl x509 –outform der –in sslcert.pem –out sslcert.der
Ha módosítania kell a .pem formátumot .der-re
Konvertálja a tanúsítványt és a privát kulcsot PKCS#12 formátumba
openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem
Ha egy tanúsítványt kell használnia a java alkalmazással vagy bármely más olyannal, amely csak PKCS#12 formátumot fogad el, használhatja a fenti parancsot, amely egyetlen tanúsítványt és kulcsfájlt tartalmazó pfx-et generál.
Tipp: lánctanúsítványt is megadhat a –chain átadásával az alábbiak szerint.
openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem
CSR létrehozása meglévő privát kulcs használatával
openssl req –out certificate.csr –key existing.key –new
Ha nem szeretne új privát kulcsot létrehozni ahelyett, hogy egy meglévőt használna, használhatja a fenti parancsot.
Ellenőrizze a PKCS12 formátumú tanúsítvány tartalmát
openssl pkcs12 –info –nodes –in cert.p12
A PKCS12 egy bináris formátum, így nem tudja majd megtekinteni a tartalmat a jegyzettömbön vagy más szerkesztőben. A fenti parancs segít a PKCS12 fájl tartalmának megtekintésében.
Konvertálja a PKCS12 formátumot PEM tanúsítványra
openssl pkcs12 –in cert.p12 –out cert.pem
Ha meglévő pkcs12 formátumot szeretne használni az Apache-val vagy csak PEM formátumban, ez hasznos lesz.
Egy adott URL SSL-tanúsítványának tesztelése
openssl s_client -connect yoururl.com:443 –showcerts
Gyakran használom ezt egy adott URL SSL-tanúsítványának ellenőrzésére a szerverről. Ez nagyon hasznos a protokoll, a titkosítás és a tanúsítvány részleteinek érvényesítéséhez.
Ismerje meg az OpenSSL verzióját
openssl version
Ha Ön felelős az OpenSSL biztonságának biztosításáért, akkor valószínűleg az egyik első dolga, amit meg kell tennie, a verzió ellenőrzése.
Ellenőrizze a PEM-fájl tanúsítványának lejárati dátumát
openssl x509 -noout -in certificate.pem -dates
Hasznos, ha bizonyos megfigyelést tervez az érvényesség ellenőrzésére. Megjeleníti a dátumot notBefore és notAfter szintaxisban. A notAfter az egyik, amelyet ellenőriznie kell annak megerősítéséhez, hogy a tanúsítvány lejárt vagy még mindig érvényes.
Volt:
[[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]#
Ellenőrizze az SSL URL tanúsítvány lejárati dátumát
openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate
Egy másik hasznos, ha az SSL-tanúsítványok lejárati dátumát vagy egy adott URL-címet távolról szeretné figyelni.
Volt:
[[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
Ellenőrizze, hogy az SSL V2 vagy V3 elfogadott-e az URL-en
Az SSL V2 ellenőrzéséhez
openssl s_client -connect secureurl.com:443 -ssl2
Az SSL V3 ellenőrzéséhez
openssl s_client -connect secureurl.com:443 –ssl3
A TLS 1.0 ellenőrzéséhez
openssl s_client -connect secureurl.com:443 –tls1
A TLS 1.1 ellenőrzéséhez
openssl s_client -connect secureurl.com:443 –tls1_1
A TLS 1.2 ellenőrzéséhez
openssl s_client -connect secureurl.com:443 –tls1_2
Ha egy webszervert biztosít, és ellenőriznie kell, hogy az SSL V2/V3 engedélyezve van-e vagy sem, használhatja a fenti parancsot. Ha aktiválva van, akkor a „CONNECTED” üzenet jelenik meg, máskülönben a „kézfogási hiba”.
Ellenőrizze, hogy az adott titkosítás elfogadott-e az URL-en
openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443
Ha a biztonsági megállapításokon dolgozik, és a tollteszt eredményei azt mutatják, hogy néhány gyenge titkosítás elfogadott, akkor az érvényesítéshez használhatja a fenti parancsot.
Természetesen meg kell változtatnia a titkosítást és az URL-t, amelyekkel szemben tesztelni szeretne. Ha az említett titkosítás elfogadásra kerül, akkor a „CONNECTED” üzenetet kapja, különben „kézfogási hiba”.
Remélem, hogy a fenti parancsok segítenek többet megtudni az OpenSSL-ről a webhelye SSL-tanúsítványainak kezeléséhez.