Tanúsítványok

Napjainkban a titkosítás egyik legnépszerűbb formája a nyilvános kulcsú titkosítás. A nyilvános kulcsú titkosítás egy nyilvános kulcsot és egy személyes kulcsot használ. A rendszer működésének alapja az információk titkosítása a nyilvános kulccsal. Az információk ezután csak a személyes kulccsal fejthetők vissza.

A nyilvános kulcsú titkosítás általánosan elterjedt alkalmazások forgalmának titkosítására SSL vagy TLS kapcsolat segítségével. Az Apache beállítható például a HTTPS, az SSL feletti HTTP biztosítására. Ez lehetővé teszi az olyan protokollon folyó forgalom titkosítását, amely maga nem biztosít titkosítást.

A tanúsítvány egy nyilvános kulcs és a kiszolgálóval, valamint az azért felelős szervezettel kapcsolatos egyéb információk terjesztésére használt módszer. A tanúsítványokat digitálisan aláírhatják a hitelesítésszolgáltatók (CA). A CA egy megbízható harmadik fél, aki meggyőződött a tanúsítványban szereplő információk pontosságáról.

Tanúsítványok típusai

Biztonságos kiszolgáló nyilvános kulcsú titkosítás használatára való beállításához a legtöbb esetben el kell küldenie a hitelesítési kérést (a nyilvános kulccsal együtt), a cég azonosságának bizonyítékát, valamint a CA díjazását. A CA ellenőrzi a hitelesítési kérést és az azonosságot, majd visszaküldi a biztonságos kiszolgálóhoz használható tanúsítványt. Ennek alternatívájaként létrehozhat önaláírású tanúsítványt is.

[Megjegyzés]

Ne feledje, hogy az önaláírású tanúsítványokat nem szabad éles környezetben használni.

A HTTPS példát folytatva a CA által aláírt tanúsítvány két fontos képességet biztosít az önaláírású tanúsítványokkal szemben:

  • A böngészők (általában) automatikusan felismerik a tanúsítványt, és lehetővé teszik a biztonságos kapcsolat létrehozását a felhasználó megkérdezése nélkül.

  • Amikor egy CA aláírt tanúsítványt ad ki, garantálja a böngésző számára weboldalakat biztosító szervezet azonosságát.

A legtöbb SSL-t támogató webböngésző és számítógép rendelkezik a CA-k listájával, amelyek tanúsítványait automatikusan elfogadja. Ha a böngésző olyan tanúsítványt észlelt, amely jóváhagyó CA-ja nincs a listában, akkor a böngésző megkérdezi a felhasználót a kapcsolat elfogadásáról vagy visszautasításáról. Más alkalmazások hibaüzenetet adhatnak önaláírású tanúsítvány használatakor.

A CA-tól tanúsítvány beszerzésének folyamata viszonylag egyszerű. A teendők listája röviden:

  1. Hozzon létre egy személyes és nyilvános titkosításikulcs-párt.

  2. Hozzon létre egy tanúsítványigénylést a nyilvános kulcs alapján. A tanúsítványigénylés a kiszolgálóról és az azt működtető cégről tartalmaz információkat.

  3. Küldje el a tanúsítványigénylést a személyazonosságát igazoló dokumentumokkal egy CA-nak. Nem tehetünk javaslatokat, hogy melyiket válassza. Döntését korábbi tapasztalataira, vagy barátai és kollégái tapasztalataira, vagy pusztán pénzügyi tényezőkre is alapozhatja.

    Miután kiválasztotta a CA-t, kövesse az általuk adott utasításokat a tanúsítvány megszerzéséhez.

  4. Miután a CA meggyőződött arról, hogy Ön valóban az, akinek mondja magát, elküldi a digitális tanúsítványt.

  5. Telepítse a tanúsítványt a biztonságos kiszolgálóra, és állítsa be a megfelelő alkalmazásokat annak használatára.

Tanúsítvány-aláírási kérés (CSR) előállítása

Akár egy CA-tól szerzi be a tanúsítványt, akár önaláírt tanúsítványt akar használni, az első lépés a kulcs előállítása.

Ha a tanúsítványt szolgáltatásdémonok fogják használni, mint például az Apache, Postfix, Dovecot stb., akkor a jelmondat nélküli kulcs sok esetben megfelelő. A jelmondat hiánya lehetővé teszi a szolgáltatások emberi beavatkozás nélküli elindítását, ez általában a démonok elvárt indítási módja.

Ez a szakasz ismerteti egy jelmondattal rendelkező, és egy azzal nem rendelkező kulcs előállítását. A jelmondat nélküli kulcs ezután szolgáltatásdémonok által használt tanúsítvány előállításához lesz felhasználva.

[Figyelem]

A biztonságos szolgáltatás jelmondat nélküli futtatása kényelmes, mert nem igényli a jelmondat megadását a szolgáltatás minden egyes elindításakor. Ugyanakkor nem biztonságos, és a kulcs veszélybe kerülése a kiszolgáló veszélybe kerülését is jelenti.

A tanúsítvány-aláírási kéréshez használandó kulcsok előállításához adja ki a következő parancsot:

openssl genrsa -des3 -out server.key 1024
Generating RSA private key, 1024 bit long modulus
.....................++++++
.................++++++
unable to write 'random state'
e is 65537 (0x10001)
Enter pass phrase for server.key:

Ezután adja meg a jelmondatot. A nagyobb biztonság érdekében legalább nyolc karakterből kell állnia. A -des3 megadásakor a minimális hossz négy karakter. Tartalmaznia kell számokat és/vagy írásjeleket, és nem lehet szótári szó. Ne feledje, hogy a jelmondat megkülönbözteti a kis- és nagybetűket.

Ellenőrzési célból írja be újra a jelmondatot. A sikeres ismételt megadás után elkészül a kiszolgálókulcs, és a server.key fájlba kerül mentésre.

Hozza létre a nem biztonságos, jelmondat nélküli kulcsot, és keverje meg a kulcsneveket:

openssl rsa -in server.key -out server.key.insecure
mv server.key server.key.secure
mv server.key.insecure server.key

A nem biztonságos kulcs neve most server.key, és segítségével előállíthatja a jelmondat nélküli CSR-t.

A CSR előállításához adja ki a következő parancsot:

openssl req -new -key server.key -out server.csr

A parancs bekéri a jelmondatot. A helyes jelmondat megadása után bekéri a cégnevet, az oldal címét, e-mail azonosítót stb. A részletes adatok megadása után elkészül a CSR, és a server.csr fájlba kerül mentésre.

Ezután ezt a CSR fájlt elküldheti feldolgozásra egy CA-nak. A CA a CSR fájlt fogja használni, és kiadja a tanúsítványt. Másrészt, ezen CSR segítségével létrehozhat önaláírású tanúsítványt is.

Önaláírású tanúsítvány létrehozása

Az önaláírású tanúsítvány létrehozásához adja ki a következő parancsot:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

A fenti parancs bekéri a jelmondatot. A helyes jelmondat megadása után létrejön a tanúsítvány, és a server.crt fájlba kerül mentésre.

[Figyelem]

Ha kiszolgálóját éles környezetben szeretné használni, akkor egy CA által aláírt tanúsítványra lesz szüksége. Az önaláírású tanúsítványok használata nem javasolt.

A tanúsítvány telepítése

A következő parancsok kiadásával telepítheti a server.key kulcsfájlt és a server.crt tanúsítványfájlt, vagy a CA által kiadott tanúsítványfájlt:

sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

Ezután egyszerűen állítsa be a nyilvános kulcsú titkosítást használni képes alkalmazásokat a tanúsítvány és kulcs fájlok használatára. Segítségükkel az Apache például a HTTPS, a Dovecot IMAPS és POP3S szolgáltatásokat nyújthatja.

Hitelesítésszolgáltató

Ha hálózatán a szolgáltatások néhány önaláírású tanúsítványnál többet igényelnek, érdemes lehet saját belső hitelesítésszolgáltatót (CA) készíteni. A saját CA által aláírt tanúsítványok használata lehetővé teszi, hogy a tanúsítványokat használó különböző szolgáltatások megbízzanak az azonos CA által kibocsátott tanúsítványokat használó szolgáltatásokban.

  1. Első lépésként hozza létre a CA tanúsítványát tartalmazó könyvtárakat és a kapcsolódó fájlokat:

    sudo mkdir /etc/ssl/CA
    sudo mkdir /etc/ssl/newcerts
    
  2. A CA működéséhez néhány további fájl is szükséges, egy a CA által utoljára használt sorozatszám tárolására, mivel minden tanúsítványnak egyedi sorozatszámot kell használnia, és egy másik a kibocsátott tanúsítványok rögzítésére:

    sudo sh -c "echo '01' > /etc/ssl/CA/serial"
    sudo touch /etc/ssl/CA/index.txt
    
  3. A harmadik fájl a CA beállítófájlja. Noha nem feltétlenül szükséges, több tanúsítvány kibocsátásakor nagyon kényelmes. Szerkessze az /etc/ssl/openssl.cnf fájlt, és a [ CA_default ] szakaszban módosítsa a következőket:

    dir             = /etc/ssl/             # Where everything is kept
    database        = $dir/CA/index.txt     # database index file.
    certificate     = $dir/certs/cacert.pem # The CA certificate
    serial          = $dir/CA/serial        # The current serial number
    private_key     = $dir/private/cakey.pem# The private key
    
  4. Ezután hozza létre az önaláírt gyökértanúsítványt:

    openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650
    

    A program bekéri a tanúsítvány részleteit.

  5. Ezután telepítse a gyökértanúsítványt és a kulcsot:

    sudo mv cakey.pem /etc/ssl/private/
    sudo mv cacert.pem /etc/ssl/certs/
    
  6. Most már készen áll tanúsítványok aláírására. Első lépésként egy tanúsítvány-aláírási kérésre (CSR) lesz szükség, a részletekért lásd: „Tanúsítvány-aláírási kérés (CSR) előállítása”. A CSR beszerzése után adja ki a következő parancsot a CA által aláírt tanúsítvány kiadásához:

    sudo openssl ca -in server.csr -config /etc/ssl/openssl.cnf
    

    A CA kulcs jelszavának megadása után a program megkéri a tanúsítvány aláírására, majd az új tanúsítvány véglegesítésére. Ezután nagyobb mennyiségű információ jelenik meg a tanúsítvány létrehozásával kapcsolatban.

  7. Létrejön egy új, /etc/ssl/newcerts/01.pem nevű fájl, amely ugyanezeket az információkat tartalmazza. Másoljon át mindent a -----BEGIN CERTIFICATE----- és ----END CERTIFICATE----- sorok közül egy új fájlba. Ezt arról a kiszolgálóról nevezze el, amelyen a tanúsítványt használni tervezi. A levelezes.pelda.hu.crt például egy szép beszédes név.

    Az ezt követő tanúsítványok neve 02.pem, 03.pem stb. lesz.

    [Megjegyzés]

    A levelezes.pelda.hu.crt helyett használjon saját beszédes nevet.

  8. Végül másolja át az új tanúsítványt az azt igénylő gépre, és állítsa be a megfelelő alkalmazásokat annak használatára. A tanúsítványok telepítésének alapértelmezett helye az /etc/ssl/certs. Ez túlbonyolított fájljogosultságok használata nélkül több szolgáltatás számára is lehetővé teszi ugyanazon tanúsítvány használatát.

    A CA tanúsítvány használatára beállítható alkalmazásokhoz át kell másolnia az /etc/ssl/certs/cacert.pem fájlt az egyes kiszolgálók /etc/ssl/certs/ könyvtárába.

Hivatkozások