Vissza a bloghoz

OpenSSL alapok: Privát kulcsok, tanúsítvány-aláírási kérelmek és SSL-tanúsítványok kezelése

OpenSSL alapok: Privát kulcsok, tanúsítvány-aláírási kérelmek és SSL-tanúsítványok kezelése

OpenSSL egy nyílt forráskódú kriptográfiai könyvtár, amely számos olyan parancsot tartalmaz, amelyeket a(z) TLS protokoll és a(z) nyilvános kulcsú infrastruktúra során használnak. Az OpenSSL 1998-ban jelent meg, és Windows, Linux, macOS, valamint BSD rendszerekre érhető el. Az OpenSSL parancs segít a különböző feladatok elvégzésében, beleértve a tanúsítvány-aláírási kérelmet (CSR), a privát kulcsok generálását és az SSL-tanúsítást.

Az OpenSSL azért fontos, mert biztosítja a megfelelő SSL-implementációt. Az SSL megfelelő módon történő beszerzése kulcsfontosságú a webhely biztonsága szempontjából. Ráadásul a Google, amely egy vezető keresőmotor, előnyben részesíti az SSL-tanúsítvánnyal rendelkező webhelyeket. Egyes böngészők, mint például a Chrome és a Firefox, „Nem biztonságos” jelöléssel láthatják el a webhelyet, ha nem rendelkezik megfelelő SSL-tanúsítvánnyal. Ezért rendkívül fontos, hogy a webhely forgalmát a titkosított HTTPS protokollon keresztül szolgálja ki.

Legelőször is

Ez az útmutató egy puskaszerű segédlet, amely tartalmaz néhány, de valószínűleg nem az összes olyan OpenSSL parancsot, amelyet a mindennapi forgatókönyvek során használhat.

Az első rész elmagyarázza mindazt, amit a(z) tanúsítvány-aláírási kérelmekről (CSR) tudni kell. Ha azonban már ismeri ezt, átugorhat bármely más szakaszra, amely releváns az elérendő cél szempontjából. Minden szakasz tartalmaz egy parancssori részletet az alcímben megfogalmazottak megvalósításához.

Kezdjük el!

1. szakasz: A tanúsítvány-aláírási kérelmek (CSR) megértése

A tanúsítvány-aláírási kérelem előfeltétele az SSL-tanúsítvány hitelesítésszolgáltatótól (CA) történő beszerzésének. A CSR tartalmazza egy kulcspár nyilvános kulcsát és néhány további információt. Ezeket az aláírási folyamat során be kell illesztenie a tanúsítványba.

A CSR generálása során a rendszer azonosító adatok megadására kéri, amelyet Distinguished Name-nek (DN) neveznek. A DN tartalmazza a tanúsítványhoz szükséges mezőket, mint például a Common Name (CN), amely a tanúsítványt használó állomás pontos, teljes tartományneve (FQDN). A DN többi mezője további információkra szolgál, mint például az ország, az állam/megye, a település neve, valamint a szervezet vagy a vállalkozás neve, ha kifejezetten a vállalkozására szabott tanúsítványokat generál. Dönthet úgy is, hogy kihagyja a kérdéseket, ha az információkat egy fájlból vagy a parancssorból adja meg.

Tekintse meg a CSR-információk bekérésének példáját az alábbi képernyőképen:

Az információkat egyetlen sorból álló parancsban is megadhatja a kérdések elkerülése érdekében, ha hozzáadja a -subj jelzőt az alábbiak szerint, és megadja a mezők adatait:

A fenti parancs ugyanazokat az információkat veszi át, mint amelyek a CSR-információk bekérését bemutató kódblokk-példában szerepelnek.

2. szakasz: Tanúsítvány-aláírási kérelmek generálása

Ebben a szakaszban azokat az OpenSSL parancsokat ismertetjük, amelyeket a CSR és a privát kulcsok generálásához használhat. A CSR-ek szükségesek az SSL-tanúsítványok hitelesítésszolgáltatótól (CA) történő igényléséhez.

Privát kulcs és tanúsítvány-aláírási kérelem generálása

Ezt a módszert akkor használhatja, ha egy hitelesítésszolgáltató által kibocsátott SSL-tanúsítvánnyal szeretné biztosítani a(z) Apache vagy Nginx szerver a forgalom HTTPS-en, azaz TLS-sel ellátott HTTP-n keresztüli kiszolgálásához. Az ezzel a paranccsal generált CSR elküldhető egy CA-nak a CA által aláírt SSL-tanúsítvány igényléséhez. Követheti részletes útmutatóinkat arról, hogyan állíthatja be az Apache vagy Nginx szervereit Ubuntu-n.

Írja be a következő parancsot a terminálba egy 2048 bites privát kulcs (domain.key) és CSR (domain.csr) létrehozásához a semmiből:

Válaszoljon a kérdésekre a konkrét CSR-információival. Opcionálisan hozzáadhatja a -subj jelzőt a parancshoz, hogy elkerülje a kérdéseket:

A -newkey rsa:2048 jelző meghatározza, hogy a kulcsot a 2048 bites RSA algoritmussal kell generálni. A -nodes jelző azt jelzi, hogy nincs jelmondatos titkosítás a privát kulcshoz. Van egy -new opció is, amely nincs benne, de magától értetődő, jelezve, hogy új CSR generálódik.

Tanúsítvány-aláírási kérelem (CSR) generálása meglévő privát kulcsból

Ha már rendelkezik privát kulccsal, akkor ezt a módszert használhatja a CSR generálására. Ezt követően ezzel igényelhet SSL-tanúsítványt egy CA-tól. Írja be a következő parancsot egy új CSR (domain.csr) generálásához egy meglévő privát kulcs (domain.key):

Válaszoljon a kérdésekre a konkrét CSR-információival. Opcionálisan hozzáadhatja a -subj jelzőt a parancshoz, hogy elkerülje a kérdéseket:

A -key jelző határozza meg a meglévő privát kulcsot (domain.key), amelyet az új CSR generálásához kell használni. A -new jelző azt jelzi, hogy új CSR generálása történik.

Tanúsítvány-aláírási kérelem generálása meglévő tanúsítványból és privát kulcsból

Ha már rendelkezik egy meglévő tanúsítvánnyal, amelyet fel szeretne használni egy CSR generálásához, akkor ezt a módszert használhatja. Ez a módszer akkor lehet hasznos, ha Ön vagy a CA elveszíti az eredeti CSR-t, és a korábban megadott CSR-információk felhasználásával kell azt legenerálnia anélkül, hogy újra meg kellene adnia azokat. A parancs kinyeri az információkat a meglévő tanúsítványból. Írja be a következő parancsot a terminálba egy új CSR (domain.csr) létrehozásához egy meglévő tanúsítvány (domain.crt) és egy meglévő privát kulcs (domain.key):

A -x509toreq opció azt jelzi, hogy az X509 tanúsítványt használja a CSR generálásához.

3. szakasz: SSL-tanúsítványok generálása

Bizonyos helyzetekben előfordulhat, hogy SSL-tanúsítványt szeretne használni anélkül, hogy CA által aláírt tanúsítvány beszerzésével bajlódna. Ez a szakasz bemutatja, hogyan írhatja alá saját tanúsítványait. Ez érvényes és ingyenes. Ezeket a tanúsítványokat önaláírt tanúsítványoknak nevezik, és meglehetősen elterjedtek.

Az önaláírt tanúsítványt a saját privát kulcsával írják alá. Mind az önaláírt, mind a CA által aláírt tanúsítványok ugyanúgy működnek az adatok és a webhely forgalmának titkosítására. Az önaláírt tanúsítványok esetében azonban a felhasználók általában figyelmeztetést kapnak a böngészőjükben, hogy a tanúsítvány nem megbízható. Ezért az önaláírt tanúsítványokat olyan webhelyekhez használhatja, amelyek nem cserélnek érzékeny információkat a felhasználókkal, vagy nem éles környezetben lévő szervereken. Alább megtalálja azokat az OpenSSL parancsokat, amelyeket az önaláírt tanúsítványok generálásához használhat.

  • Önaláírt tanúsítvány generálása

Ezzel a módszerrel SSL-tanúsítványt generálhat Apache vagy Nginx szervere biztosításához. Ez biztosítja, hogy a forgalom HTTPS-en vagy HTTP over TLS-en keresztül bonyolódjon, anélkül, hogy hitelesítésszolgáltatóhoz (CA) kellene fordulnia a tanúsítvány aláírásáért:

Válaszoljon a kérdésekre a saját CSR-információival. Opcionálisan hozzáadhatja a(z) -subj jelzőt a parancshoz, hogy elkerülje a kérdéseket:

A(z) -x509 jelző egy önaláírt tanúsítvány létrehozását jelzi. A(z) -days 365 opció megadja, hogy hány napig lesz érvényes a tanúsítvány. Ebben az esetben ez 365 nap. Más számú napot is választhat. A parancs egy ideiglenes CSR-t generál a tanúsítványhoz társítandó információk tárolására.

  • Önaláírt tanúsítvány generálása meglévő privát kulcsból

Ez a módszer segít önaláírt tanúsítványt generálni a már meglévő privát kulcsából. Írja be a következő parancsot egy önaláírt tanúsítvány (domain.crt) generálásához egy meglévő privát kulcs (domain.key):

Adja meg a kérdésekre a saját CSR-információit. Opcionálisan hozzáadhatja a(z) -subj jelzőt a parancshoz, hogy elkerülje a kérdéseket:

A(z) -x509 jelző egy önaláírt tanúsítvány létrehozását jelzi. A(z) -days 365 opció megadja, hogy hány napig lesz érvényes a tanúsítvány. Ebben az esetben ez 365 nap. Más számú napot is választhat. A(z) -new opció elindítja a CSR-információk bekérését.

4. szakasz: Tanúsítványok megtekintése

A tanúsítványok és a CSR-fájlok kódolva vannak, és a(z) .pem kiterjesztéssel kerülnek tárolásra. Ez a Privacy-Enhanced Mail rövidítése. Ez egy fájlformátum kriptográfiai kulcsok, tanúsítványok és egyéb kulcsfontosságú adatok tárolására és küldésére. A PEM-fájlok az emberek számára nem olvashatók közvetlenül. Ebben a szakaszban olyan parancsokat talál, amelyekkel megtekintheti a kódolt PEM-fájlok bejegyzéseit.

  • CSR-fájlok megtekintése

Írja be a következő parancsot egy CSR (domain.csr) tartalmának megtekintéséhez és ellenőrzéséhez a terminálon:

Például a fenti parancs kimenete valami hasonló lehet:

Viewing CSR files

  • Tanúsítványbejegyzések megtekintése

Írja be a következő parancsot egy tanúsítvány (domain.crt):

A fenti parancs kimenete valami hasonló lehet:

OpenSSL

  • Annak ellenőrzése, hogy a tanúsítványt egy hitelesítésszolgáltató írta-e alá

Annak ellenőrzéséhez, hogy egy tanúsítványt (domain.crt) egy bizonyos CA-tanúsítvány (ca.crt) írt-e alá, írja be a következő parancsot:

 

5. szakasz: Privát kulcsok

Ha a privát kulcsok létrehozásához és ellenőrzéséhez szükséges OpenSSL-parancsokat keresi, ez a szakasz Önnek szól.

  • Privát kulcs létrehozása

Egy jelszóval védett, 2048 bites privát kulcs (domain.key) létrehozásához írja be a következő parancsot a terminálba:

A parancs jelszót fog kérni a folyamat befejezéséhez. Lásd az alábbi képernyőképet:

Creating a Private Key

  • Privát kulcs ellenőrzése

Egy privát kulcs (domain.key) érvényességének ellenőrzéséhez írja be a következő parancsot a terminálba:

Ezután meg kell adnia egy jelszót. Ha a privát kulcs titkosítva van, és a helyes jelmondatot adja meg, a titkosítatlan kulcs megjelenik a terminálon. Lásd az alábbi képernyőképet:

Verifying a Private Key

  • Ellenőrizze, hogy a privát kulcs megegyezik-e a tanúsítvánnyal és a CSR-rel

Ha ellenőrizni szeretné, hogy egy privát kulcs (domain.key) megegyezik-e egy tanúsítvánnyal (domain.crt) és egy CSR-rel (domain.csr), írja be a következő parancsokat a terminálba:

Ha azt tapasztalja, hogy a fenti parancsok kimenete megegyezik, akkor lehetséges, hogy a privát kulcs, a tanúsítvány és a CSR összetartoznak.

  • Privát kulcs titkosítása

Ha rendelkezik egy titkosítatlan privát kulccsal (unencrypted.key) és szeretné megkapni a kulcs titkosított verzióját (encrypted.key), írja be a következő parancsot a terminálba:

A parancs kérni fog egy jelmondatot a privát kulcs titkosításához.

  • Privát kulcs visszafejtése

Ha rendelkezik egy titkosított privát kulccsal (encrypted.key) és szeretné megkapni annak visszafejtett verzióját (decrypted.key), írja be a következő parancsot a terminálba:

A parancs kérni fogja a titkosított kulcs jelmondatát. Ha a helyes jelmondatot adja meg, a kulcs visszafejtésre kerül. A kimenet ide kerül: decrypted.key.

 

6. szakasz: Tanúsítványformátumok konvertálása

Megfigyelhette, hogy eddig X.509 tanúsítványokkal dolgoztunk, amelyek ASCII PEM kódolásúak. Bár ez teljesen megfelelő, számos más tanúsítványkódolási és konténertípus is létezik, amelyeket használhat. Bizonyos alkalmazásokban előnyben részesíthet bizonyos formátumokat másokkal szemben. Ezenkívül néhány eltérő formátum több elemet is tartalmazhat egyetlen fájlban, például egy privát kulcsot, egy CSR-t és egy CA által aláírt tanúsítványt. Az OpenSSL-t a különböző tanúsítványformátumok közötti konvertálásra is használhatja. Olvasson tovább a tanúsítványformátumok konvertálására szolgáló OpenSSL-parancsokért.

  • PEM konvertálása DER formátumba

A DER (Distinguished Encoding Rules) egy bináris kódolás az X.509 tanúsítványokhoz és privát kulcsokhoz. Egy PEM-kódolású tanúsítvány (domain.crt) DER-kódolású tanúsítvánnyá (domain.der) történő konvertálásához írja be a következő parancsot:

A DER kódolási formátum legtöbb felhasználási esetével a Java programozási nyelvben találkozhat. Kövesse ezt az útmutatót a Java gyors beállításához az Ubuntu szerverén.

  • DER konvertálása PEM formátumba

Egy DER-kódolású tanúsítvány (domain.der) PEM tanúsítvánnyá (domain.crt) történő konvertálásához írja be a következő parancsot:

 

  • PEM konvertálása PKCS7 formátumba

Előfordulhat, hogy PEM tanúsítványokat, például a domain.crt és ca-chain.crt fájlokat szeretné hozzáadni egy PKCS7 fájlhoz (domain.p7b). Íme az ehhez szükséges parancs:

A -certfile opciót többször is használhatja a PKCS7 fájlhoz hozzáadni kívánt tanúsítványok megadásához. A PKCS7 fájlok leginkább a Java Key store-ok és a Microsoft IIS esetében relevánsak. Más néven P7B fájlok, ezek olyan ASCII fájlok, amelyek tanúsítványokat és CA által aláírt tanúsítványokat tartalmazhatnak.

  • PKCS7 konvertálása PEM formátumba

Egy PKCS7 fájl (domain.p7b) PEM kódolású fájllá (domain.crt) történő konvertálásához írja be a következő parancsot a terminálba:

 

  • PEM konvertálása PKCS12 formátumba

Egy privát kulcs (domain.key) és egy tanúsítvány (domain.crt) egyesítéséhez egy PKCS12 fájl (domain.pfx) létrehozásához írja be a következő parancsot:

A parancs kérni fogja az exportálási jelszavak megadását, amelyeket opcionálisan üresen is hagyhat. Több tanúsítványt is láncolhat a PKCS12 fájlhoz a tanúsítványok egyetlen PEM fájlban (domain.crt) történő összefűzésével. A PKCS12 PFX néven is ismert, és leggyakrabban a Microsoft IIS.

  • PKCS12 konvertálása PEM formátumba

Egy PKCS12 fájl (domain.pfx) PEM kódolású formátumba (domain.combined.crt) való konvertálásához írja be a következő parancsot:

A fenti parancs által létrehozott PEM fájl tartalmazza az összes elemet, amelyet a PKCS12 tartalmazott.

7. szakasz: Az OpenSSL verziójának ellenőrzése

A futtatott szoftverek verziója befolyásolhatja az alkalmazások képességeit. Ezért szükséges a verzió megállapítása. Ugyanez vonatkozik az OpenSSL-re is. Előfordulhat, hogy egyes parancssori opciók hiányoznak az egyik verzióból, míg egy másikban elérhetők. A futtatott OpenSSL verziójának megtekintéséhez írja be a következő parancsot:

Az alábbiakban látható az a kimenet, amelyet a fenti parancs futtatásakor kaptunk az útmutató készítése során:

Alább látható a tényleges képernyőkép:

OpenSSL

Összegzés

Ebben az útmutatóban elmagyaráztuk, mi az az OpenSSL, kitértünk a tanúsítvány-aláírási kérelmekre (CSR), valamint bemutattunk néhány alapvető OpenSSL-parancsot, amelyeket a szerverkörnyezetében használhat.

Hiányol valamilyen fontos parancsot, vagy problémája adódott a parancsok bármelyikével a szerverbeállítás során a CloudSigma platformon? Forduljon bizalommal a 24/7-es ügyfélszolgálatunkhoz valós idejű chaten, hogy megbeszéljük.

Kellemes számítástechnikát!

author

Manpreet Singh

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.