Tanúsítványkezelő (CA) beállítása és konfigurálása Ubuntu 20.04

Bevezetés

A Tanúsítványkezelő (CA) egy olyan szervezet, amely digitális tanúsítványok kiadásáért felelős, hogy ellenőrizze a személyazonosságokat az interneten. Bár a nyilvános hitelesítésszolgáltatók népszerűek a weboldalak és más, a nagyközönség számára nyújtott szolgáltatások személyazonosságának ellenőrzésére, a magán hitelesítésszolgáltatókat általában zárt csoportok és magánszolgáltatások esetében használják.

A magán hitelesítésszolgáltató kiépítése lehetővé teszi olyan programok konfigurálását, tesztelését és futtatását, amelyek titkosított kapcsolatot igényelnek egy ügyfél és egy kiszolgáló között. Egy privát hitelesítésszolgáltatóval tanúsítványokat állíthat ki felhasználók, kiszolgálók vagy az infrastruktúrán belüli egyes programok és szolgáltatások számára.

A saját privát hitelesítésszolgáltatót használó Linux-programok közül néhány példa az OpenVPN és a Puppet . Webkiszolgálóját úgy is beállíthatja, hogy egy privát hitelesítésszolgáltató által kiállított tanúsítványokat használjon, hogy a fejlesztési és előkészítő környezetek megfeleljenek a TLS-t a kapcsolatok titkosítására használó termelési szervereknek.

Ezzel az útmutatóval megtanuljuk, hogyan állíthatunk be egy privát hitelesítésszolgáltatót egy Ubuntu 20.04 szerveren, és hogyan generálhatunk és írhatunk alá egy tesztelési tanúsítványt az új hitelesítésszolgáltató segítségével. Azt is megtanulja, hogyan importálja a hitelesítésszolgáltató kiszolgáló nyilvános tanúsítványát az operációs rendszer tanúsítványtárolójába, hogy ellenőrizni tudja a hitelesítésszolgáltató és a távoli kiszolgálók vagy felhasználók közötti bizalmi láncot. Végül megtanulja, hogyan vonja vissza a tanúsítványokat és terjessze a tanúsítvány-visszavonási listát, hogy csak a jogosult felhasználók és rendszerek használhassák a hitelesítésszolgáltatóra támaszkodó szolgáltatásokat.

Előfeltételek

A bemutató elvégzéséhez hozzáférésre van szüksége egy Ubuntu 20.04 szerverhez, amelyen a hitelesítésszolgáltató szerverét elhelyezheti. Az útmutató megkezdése előtt be kell állítania egy nem root felhasználót sudo jogosultságokkal. A megfelelő jogosultságokkal rendelkező felhasználó beállításához kövesse az Ubuntu 20.04 szerver kezdeti beállítási útmutatóját. A hivatkozott útmutató egy tűzfalat is beállít, amelyről feltételezzük, hogy ebben az útmutatóban végig a helyén van.

Ezt a szervert ebben az útmutatóban CA-kiszolgálóként fogjuk emlegetni.

Győződjön meg arról, hogy a CA-kiszolgáló egy önálló rendszer. Csak a tanúsítványkérelmek importálására, aláírására és visszavonására fogjuk használni. Nem futtathat semmilyen más szolgáltatást, és ideális esetben offline vagy teljesen leáll, amikor nem dolgozik aktívan a hitelesítésszolgáltatóval.

Megjegyzés: A bemutató utolsó szakasza opcionális, ha meg szeretné tanulni a tanúsítványok aláírását és visszavonását. Ha ezeket a gyakorlati lépéseket választja, szüksége lesz egy második Ubuntu 20.04 szerverre, vagy használhatja saját helyi Linux számítógépét is, amelyen Ubuntu vagy Debian, illetve ezek valamelyikéből származó disztribúciók futnak.

1. lépés – Az Easy-RSA telepítése

A bemutató első feladata a easy-rsa szkriptkészlet telepítése a CA-kiszolgálóra. A easy-rsa egy Certificate Authority menedzsment eszköz, amelyet egy privát kulcs és egy nyilvános gyökértanúsítvány létrehozására fog használni, amelyet aztán a CA-ra támaszkodó ügyfelek és kiszolgálók kéréseinek aláírására fog használni.

Login a CA szerverre a kezdeti beállítási lépések során létrehozott nem root sudo felhasználóként, és futtassa a következőket:

  • sudo apt update
  • sudo apt install easy-rsa

A program kérni fogja a csomag letöltését és telepítését. Nyomja meg a y gombot a csomag telepítésének megerősítéséhez.

Az Easy-RSA használatához minden szükséges beállítással rendelkezik. A következő lépésben létrehoz egy nyilvános kulcsú infrastruktúrát, majd elkezdi a Tanúsítványkezelő létrehozását.

2. lépés – A nyilvános kulcsú infrastruktúra könyvtárának előkészítése

Most, hogy telepítette a easy-rsa, itt az ideje, hogy létrehozzon egy vázlatos nyilvános kulcsú infrastruktúrát (PKI) a CA-kiszolgálón. Győződjön meg róla, hogy még mindig a nem root felhasználóként van bejelentkezve, és hozzon létre egy easy-rsa könyvtárat. Győződjön meg róla, hogy nem használja a sudo parancsot a következő parancsok futtatásához, mivel a normál felhasználónak megemelt jogosultságok nélkül kell kezelnie és interakcióba lépnie a hitelesítésszolgáltatóval.

  • mkdir ~/easy-rsa

Ezzel létrehoz egy új easy-rsa nevű könyvtárat az otthoni mappájában. Ezt a könyvtárat arra fogjuk használni, hogy szimbolikus linkeket hozzunk létre, amelyek az előző lépésben telepített easy-rsa csomagfájlokra mutatnak. Ezek a fájlok a CA-kiszolgáló /usr/share/easy-rsa mappájában találhatók.

Hozza létre a szimbólumlinkeket a ln paranccsal:

  • ln -s /usr/share/easy-rsa/* ~/easy-rsa/

Megjegyzés: Míg más útmutatók arra utasítanák, hogy a easy-rsa csomagfájlokat másolja a PKI könyvtárába, ez a bemutató a szimlinkek megközelítését alkalmazza. Ennek eredményeképpen a easy-rsa csomag minden frissítése automatikusan megjelenik a PKI szkriptjeiben.

Az új PKI könyvtárhoz való hozzáférés korlátozásához biztosítsa, hogy csak a tulajdonos férhessen hozzá a chmod parancs segítségével:

  • chmod 700 /home/sammy/easy-rsa

Végül inicializálja a PKI-t a easy-rsa könyvtáron belül:

  • cd ~/easy-rsa
  • ./easyrsa init-pki
Output
init-pki complete; you may now create a CA or requests.Your newly created PKI dir is: /home/sammy/easy-rsa/pki

A szakasz befejezése után olyan könyvtárral rendelkezik, amely tartalmazza az összes olyan fájlt, amely szükséges egy tanúsítványhatóság létrehozásához. A következő szakaszban létrehozza a hitelesítésszolgáltató magánkulcsát és nyilvános tanúsítványát.

3. lépés – A hitelesítésszolgáltató létrehozása

Mielőtt létrehozná a hitelesítésszolgáltató magánkulcsát és tanúsítványát, létre kell hoznia és fel kell töltenie egy vars nevű fájlt néhány alapértelmezett értékkel. Először cd a easy-rsa könyvtárba, majd létrehozza és szerkeszti a vars fájlt a nano vagy a kívánt szövegszerkesztővel:

  • cd ~/easy-rsa
  • nano vars

A fájl megnyitása után illessze be a következő sorokat, és szerkessze az egyes kiemelt értékeket a saját szervezeti információinak megfelelően. Itt az a fontos, hogy egyik értéket se hagyja üresen:

~/easy-rsa/vars
set_var EASYRSA_REQ_COUNTRY "US"set_var EASYRSA_REQ_PROVINCE "NewYork"set_var EASYRSA_REQ_CITY "New York City"set_var EASYRSA_REQ_ORG "DigitalOcean"set_var EASYRSA_REQ_EMAIL "[email protected]"set_var EASYRSA_REQ_OU "Community"set_var EASYRSA_ALGO "ec"set_var EASYRSA_DIGEST "sha512"

Ha végzett, mentse és zárja be a fájlt. Ha a nano-t használja, akkor ezt a CTRL+X, majd a Y és a ENTER megnyomásával tudja megerősíteni. Most már készen áll a hitelesítésszolgáltató létrehozására.

A hitelesítésszolgáltató nyilvános és magán kulcspárjának létrehozásához futtassa újra a ./easy-rsa parancsot, ezúttal a build-ca opcióval:

  • ./easyrsa build-ca

A kimeneten látni fog néhány sort az OpenSSL verziójáról, és felszólítást kap a kulcspár jelszavának megadására. Ügyeljen arra, hogy erős jelszót válasszon, és jegyezze fel egy biztonságos helyre. A jelszót bármikor be kell majd írnia, amikor kapcsolatba kell lépnie a hitelesítésszolgáltatóval, például egy tanúsítvány aláírásához vagy visszavonásához.

A CA közös nevének (Common Name, CN) megerősítését is kéri a rendszer. A CN az a név, amellyel a tanúsítványkiadóval összefüggésben erre a gépre hivatkoznak. Bármilyen karaktersorozatot megadhat a hitelesítésszolgáltató közös nevének, de az egyszerűség kedvéért nyomja meg az ENTER billentyűt az alapértelmezett név elfogadásához.

Output
. . .Enter New CA Key Passphrase:Re-Enter New CA Key Passphrase:. . .Common Name (eg: your user, host, or server name) :CA creation complete and you may now import and sign cert requests.Your new CA certificate file for publishing is at:/home/sammy/easy-rsa/pki/ca.crt

Megjegyzés: Ha nem szeretné, hogy minden alkalommal, amikor kapcsolatba lép a hitelesítésszolgáltatóval, jelszót kérjen, akkor a build-ca parancsot a nopass opcióval is futtathatja, például így:

  • ./easyrsa build-ca nopass

Most két fontos fájl – ~/easy-rsa/pki/ca.crt és ~/easy-rsa/pki/private/ca.key – van, amelyek a tanúsítványhatóság nyilvános és privát összetevőit alkotják.

  • ca.crt a hitelesítésszolgáltató nyilvános tanúsítványfájlja. A felhasználók, kiszolgálók és ügyfelek ezt a tanúsítványt használják annak ellenőrzésére, hogy ugyanannak a bizalmi hálónak a részei. Minden felhasználónak és kiszolgálónak, aki a hitelesítésszolgáltatót használja, rendelkeznie kell ennek a fájlnak a másolatával. Minden fél a nyilvános tanúsítványra támaszkodik annak biztosítása érdekében, hogy valaki ne adja ki magát egy rendszernek, és ne hajtson végre Man-in-the-middle támadást.

  • ca.key a magánkulcs, amelyet a hitelesítésszolgáltató a kiszolgálók és ügyfelek tanúsítványainak aláírásához használ. Ha egy támadó hozzáfér a hitelesítésszolgáltatóhoz, és ezáltal a ca.key fájlhoz, akkor meg kell semmisítenie a hitelesítésszolgáltatót. Ezért a ca.key fájlnak csak a CA gépén kell lennie, és ideális esetben a CA gépét extra biztonsági intézkedésként offline állapotban kell tartani, amikor nem írja alá a tanúsítványkérelmeket.

Ezzel a CA megvan, és készen áll a tanúsítványkérelmek aláírására és a tanúsítványok visszavonására.

4. lépés – A hitelesítésszolgáltató nyilvános tanúsítványának terjesztése

Most a hitelesítésszolgáltatója be van állítva, és készen áll arra, hogy bizalmi gyökérként működjön minden olyan rendszer számára, amelyet a használatára kíván beállítani. Hozzáadhatja a hitelesítésszolgáltató tanúsítványát az OpenVPN-kiszolgálókhoz, webkiszolgálókhoz, levelezőkiszolgálókhoz stb. Minden olyan felhasználónak vagy kiszolgálónak, amelynek ellenőriznie kell egy másik felhasználó vagy kiszolgáló személyazonosságát a hálózatban, be kell importálnia a ca.crt fájl egy példányát az operációs rendszer tanúsítványtárolójába.

A CA nyilvános tanúsítványának egy második Linux rendszerbe, például egy másik kiszolgálóba vagy egy helyi számítógépbe történő importálásához először szerezze be a ca.crt fájl egy példányát a CA kiszolgálójától. A cat paranccsal kimeneti egy terminálban, majd bemásolhatja és beillesztheti a tanúsítványt importáló második számítógépen lévő fájlba. Használhat olyan eszközöket is, mint a scp, rsync a fájl rendszerek közötti átvitelére. Mi azonban ebben a lépésben a nano másolást és beillesztést fogjuk használni, mivel ez minden rendszeren működik.

A CA-kiszolgálón nem root felhasználóként futtassa a következő parancsot:

  • cat ~/easy-rsa/pki/ca.crt

A terminálban a következőhöz hasonló kimenet fog megjelenni:

Output
-----BEGIN CERTIFICATE-----MIIDSzCCAjOgAwIBAgIUcR9Crsv3FBEujrPZnZnU4nSb5TMwDQYJKoZIhvcNAQELBQAwFjEUMBIGA1UEAwwLRWFzeS1SU0EgQ0EwHhcNMjAwMzE4MDMxNjI2WhcNMzAw. . .. . .-----END CERTIFICATE-----

Másoljon le mindent, beleértve a -----BEGIN CERTIFICATE----- és -----END CERTIFICATE----- sorokat és a kötőjeleket is.

A második Linux rendszerén a nano vagy a kívánt szövegszerkesztővel nyisson meg egy /tmp/ca.crt nevű fájlt:

  • nano /tmp/ca.crt

A CA szerverről most kimásolt tartalmat illessze be a szerkesztőbe. Ha végzett, mentse és zárja be a fájlt. Ha a nano-t használja, akkor ezt a CTRL+X, majd a Y és a ENTER billentyűkombinációval tudja megerősíteni.

Most, hogy a ca.crt fájl másolata a második Linux rendszerén van, itt az ideje, hogy importálja a tanúsítványt az operációs rendszer tanúsítványtárolójába.

Az Ubuntu és Debian alapú rendszereken futtassa a következő parancsokat nem root felhasználóként a tanúsítvány importálásához:

Ubuntu és Debian származású disztribúciók
  • sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
  • sudo update-ca-certificates

A CA szerver tanúsítványának CentOS, Fedora vagy RedHat alapú rendszeren történő importálásához másolja be a fájl tartalmát a rendszerbe, ahogyan az előző példában, a /tmp/ca.crt nevű fájlba. Ezután másolja a tanúsítványt a /etc/pki/ca-trust/source/anchors/ könyvtárba, majd futtassa a update-ca-trust parancsot.

CentOS, Fedora, RedHat disztribúciók
  • sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
  • sudo update-ca-trust

Most a második Linux rendszere megbízik minden olyan tanúsítványban, amelyet a CA szerver írt alá.

Megjegyzés: Ha a CA-t webszerverekkel használja, és böngészőként a Firefoxot használja, akkor a nyilvános ca.crt tanúsítványt közvetlenül a Firefoxba kell importálnia. A Firefox nem használja a helyi operációs rendszer tanúsítványtárolóját. A hitelesítésszolgáltató tanúsítványának Firefoxhoz való hozzáadásáról részletesen ebben a Mozilla támogatási cikkében olvashat: Tanúsítványkezelők (CA-k) beállítása a Firefoxban.

Ha a hitelesítésszolgáltatót Windows-környezetbe vagy asztali számítógépekbe való integrálásra használja, olvassa el a dokumentációt a certutil.exe használatáról a hitelesítésszolgáltatói tanúsítvány telepítéséhez.

Ha ezt a bemutatót egy másik bemutató előfeltételeként használja, vagy már ismeri a tanúsítványok aláírását és visszavonását, akkor itt megállhat. Ha többet szeretne megtudni a tanúsítványok aláírásáról és visszavonásáról, akkor a következő opcionális rész részletesen elmagyarázza az egyes folyamatokat.

(Opcionális) – Tanúsítványaláírási kérelmek létrehozása és tanúsítványok visszavonása

A bemutató következő részei opcionálisak. Ha az összes előző lépést elvégezte, akkor rendelkezik egy teljesen konfigurált és működő Tanúsítványkezelővel, amelyet előfeltételként használhat a többi oktatóanyaghoz. Importálhatja a hitelesítésszolgáltató ca.crt fájlját, és ellenőrizheti a hálózatában a hitelesítésszolgáltató által aláírt tanúsítványokat.

Ha szeretne gyakorolni és többet megtudni a tanúsítványkérelmek aláírásáról és a tanúsítványok visszavonásáról, akkor ezek az opcionális szakaszok elmagyarázzák, hogyan működik mindkét folyamat.

(Választható) – Gyakorlati tanúsítványkérelem létrehozása és aláírása

Most, hogy a hitelesítésszolgáltató készen áll a használatra, gyakorolhatja a privát kulcs és a tanúsítványkérelem létrehozását, hogy megismerkedjen az aláírási és terjesztési folyamattal.

A tanúsítvány aláírási kérelem (CSR) három részből áll: egy nyilvános kulcsból, a kérelmező rendszer azonosító adataiból és magának a kérelemnek az aláírásából, amely a kérelmező fél privát kulcsának felhasználásával jön létre. A magánkulcs titokban marad, és olyan információk titkosítására szolgál, amelyeket aztán bárki, aki rendelkezik az aláírt nyilvános tanúsítvánnyal, visszafejthet.

A következő lépéseket a második Ubuntu vagy Debian rendszeren, illetve ezek valamelyikéből származó disztribúción kell lefuttatni. Ez lehet egy másik távoli szerver, vagy egy helyi Linux gép, például egy laptop vagy asztali számítógép. Mivel a easy-rsa nem minden rendszeren érhető el alapértelmezés szerint, a openssl eszközt fogjuk használni a gyakorló privát kulcs és tanúsítvány létrehozásához.

openssl általában alapértelmezés szerint telepítve van a legtöbb Linux disztribúción, de a biztonság kedvéért futtassa le a következőket a rendszerén:

  • sudo apt update
  • sudo apt install openssl

Amikor a openssl telepítését kéri, írja be a y-et a telepítési lépések folytatásához. Most már készen áll a gyakorlati CSR létrehozására a openssl segítségével.

A CSR létrehozásához az első lépés, amit el kell végeznie, a privát kulcs generálása. A openssl használatával történő privát kulcs létrehozásához hozzon létre egy practice-csr könyvtárat, majd generáljon benne egy kulcsot. Ezt a kérést egy sammy-server nevű fiktív kiszolgálóhoz fogjuk intézni, szemben egy olyan tanúsítvány létrehozásával, amelyet egy felhasználó vagy egy másik hitelesítésszolgáltató azonosítására használunk.

  • mkdir ~/practice-csr
  • cd ~/practice-csr
  • openssl genrsa -out sammy-server.key
Output
Generating RSA private key, 2048 bit long modulus (2 primes). . .. . .e is 65537 (0x010001)

Most, hogy megvan a privát kulcs, létrehozhatjuk a megfelelő CSR-t, ismét a openssl segédprogrammal. A program számos mező kitöltését kéri, mint például az ország, az állam és a város. Beírhat egy .-t, ha üresen szeretne hagyni egy mezőt, de vegye figyelembe, hogy ha ez egy valódi CSR lenne, akkor a legjobb, ha a helyének és szervezetének megfelelő értékeket használja:

  • openssl req -new -key sammy-server.key -out sammy-server.req
Output
. . .-----Country Name (2 letter code) :USState or Province Name (full name) :New YorkLocality Name (eg, city) :New York CityOrganization Name (eg, company) :DigitalOceanOrganizational Unit Name (eg, section) :CommunityCommon Name (eg, your name or your server's hostname) :sammy-serverEmail Address :Please enter the following 'extra' attributesto be sent with your certificate requestA challenge password :An optional company name :

Ha ezeket az értékeket nem az interaktív prompton keresztül, hanem a openssl meghívás részeként szeretné automatikusan hozzáadni, akkor átadhatja az OpenSSL-nek a -subj argumentumot. Ügyeljen arra, hogy a kiemelt értékeket úgy szerkessze, hogy megfeleljenek a gyakorlat helyének, szervezetének és a kiszolgáló nevének:

  • openssl req -new -key sammy-server.key -out server.req -subj \
  • /C=US/ST=New\ York/L=New\ York\ City/O=DigitalOcean/OU=Community/CN=sammy-server

A CSR tartalmának ellenőrzéséhez a openssl segítségével beolvashat egy kérési fájlt, és megvizsgálhatja a benne lévő mezőket:

  • openssl req -in sammy-server.req -noout -subject
Output
subject=C = US, ST = New York, L = New York City, O = DigitalOcean, OU = Community, CN = sammy-server

Ha elégedett a praxis tanúsítványkérelmének tárgyával, másolja a sammy-server.req fájlt a scp segítségével a CA-kiszolgálóra:

  • scp sammy-server.req sammy@your_ca_server_ip:/tmp/sammy-server.req

Ezzel a lépéssel egy sammy-server nevű fiktív kiszolgálóhoz generált tanúsítványaláírási kérelmet. Egy valós forgatókönyvben a kérés érkezhet például egy staging vagy fejlesztési webkiszolgálótól, amelynek TLS-tanúsítványra van szüksége a teszteléshez; vagy érkezhet egy OpenVPN-kiszolgálótól, amely tanúsítványt kér, hogy a felhasználók csatlakozhassanak egy VPN-hez. A következő lépésben a CA-kiszolgáló privát kulcsának felhasználásával folytatjuk a tanúsítvány aláírási kérelem aláírását.

(Választható) – CSR aláírása

Az előző lépésben létrehozta egy fiktív kiszolgáló gyakorlati tanúsítványkérelmét és kulcsát. Ezt átmásolta a CA-kiszolgáló /tmp könyvtárába, ezzel utánozva azt a folyamatot, amelyet akkor használna, ha valódi ügyfelek vagy kiszolgálók küldenének aláírandó CSR-kérelmeket.

Folytatva a fiktív forgatókönyvet, most a CA-kiszolgálónak importálnia kell a gyakorló tanúsítványt, és alá kell írnia azt. Miután a tanúsítványkérelmet a hitelesítésszolgáltató érvényesíti és továbbítja vissza a kiszolgálónak, a hitelesítésszolgáltatóban megbízó ügyfelek is megbízhatnak az újonnan kiállított tanúsítványban.

Mivel a hitelesítésszolgáltató PKI-jén belül fogunk működni, ahol a easy-rsa segédprogram elérhető, az aláírási lépések a dolgok megkönnyítése érdekében a easy-rsa segédprogramot fogják használni, szemben a openssl közvetlen használatával, mint az előző példában.

A fiktív CSR aláírásának első lépése a tanúsítványkérelem importálása a easy-rsa szkript segítségével:

  • cd ~/easy-rsa
  • ./easyrsa import-req /tmp/sammy-server.req sammy-server
Output
. . .The request has been successfully imported with a short name of: sammy-serverYou may now use this name to perform signing operations on this request.

Ezután a easyrsa szkript futtatásával a sign-req opcióval, majd a kérés típusával és a CSR-ben szereplő Common Name-rel aláírhatjuk a kérést. A kérelem típusa lehet a client, server vagy ca valamelyike. Mivel egy fiktív kiszolgáló tanúsítványával gyakorolunk, mindenképpen a server kéréstípust használjuk:

  • ./easyrsa sign-req server sammy-server

A kimeneten megkérdezzük, hogy a kérés megbízható forrásból származik-e. A kimeneten ellenőrizni kell, hogy a kérés megbízható forrásból származik. Írja be a yes, majd nyomja meg a ENTER gombot ennek megerősítéséhez:

Output
You are about to sign the following certificate.Please check over the details shown below for accuracy. Note that this requesthas not been cryptographically verified. Please be sure it came from a trustedsource or that you have verified the request checksum with the sender.Request subject, to be signed as a server certificate for 3650 days:subject= commonName = sammy-serverType the word 'yes' to continue, or any other input to abort. Confirm request details: yes. . .Certificate created at: /home/sammy/easy-rsa/pki/issued/sammy-server.crt

Ha titkosította a hitelesítésszolgáltatói kulcsot, akkor ezen a ponton a rendszer kérni fogja a jelszavát.

Az említett lépések elvégzésével aláírta a sammy-server.req CSR-t a CA-kiszolgáló /home/sammy/easy-rsa/pki/private/ca.key-ben található magánkulcsával. Az így kapott sammy-server.crt fájl tartalmazza a gyakorlókiszolgáló nyilvános titkosítási kulcsát, valamint a CA-kiszolgáló új aláírását. Az aláírás lényege, hogy bárki, aki megbízik a hitelesítésszolgáltatóban, azt mondja, hogy a sammy-server tanúsítványban is megbízhat.

Ha ez a kérés egy valódi kiszolgálóhoz, például egy webkiszolgálóhoz vagy VPN-kiszolgálóhoz szólt volna, a CA-kiszolgáló utolsó lépése az lenne, hogy a CA-kiszolgálótól az új sammy-server.crt és ca.crt fájlokat szétküldi a CSR-kérelmet benyújtó távoli kiszolgálónak:

  • scp pki/issued/sammy-server.crt sammy@your_server_ip:/tmp
  • scp pki/ca.crt sammy@your_server_ip:/tmp

Ezután már használhatja a kiállított tanúsítványt például egy webkiszolgálóval, VPN-rel, konfigurációkezelő eszközzel, adatbázisrendszerrel vagy ügyfél-hitelesítési célokra.

(Választható) – Tanúsítvány visszavonása

Egy tanúsítvány visszavonására időnként szükség lehet, hogy megakadályozza egy felhasználó vagy kiszolgáló használatát. Lehet, hogy valakinek ellopták a laptopját, egy webkiszolgálót feltörtek, vagy egy alkalmazott vagy vállalkozó elhagyta a szervezetét.

A tanúsítvány visszavonásához az általános folyamat a következő lépések szerint zajlik:

  1. Vonja vissza a tanúsítványt a ./easyrsa revoke client_name paranccsal.
  2. Generáljon új CRL-t a ./easyrsa gen-crl paranccsal.
  3. Továbbítsa a frissített crl.pem fájlt a hitelesítésszolgáltatóra támaszkodó kiszolgálóra vagy kiszolgálókra, és ezeken a rendszereken másolja azt a szükséges könyvtárba vagy könyvtárakba az arra hivatkozó programok számára.
  4. Indítsa újra a hitelesítésszolgáltatót és a CRL fájlt használó szolgáltatásokat.

Ezzel a folyamattal bármikor visszavonhatja a korábban kiállított tanúsítványokat. A következő szakaszokban részletesen áttekintjük az egyes lépéseket, kezdve a revoke paranccsal.

Tanúsítvány visszavonása

A tanúsítvány visszavonásához navigáljon a easy-rsa könyvtárba a CA-kiszolgálón:

  • cd ~/easy-rsa

Ezután futtassa a easyrsa szkriptet a revoke opcióval, majd a visszavonni kívánt ügyfél nevével. A fenti gyakorlati példát követve a tanúsítvány közös neve sammy-server:

  • ./easyrsa revoke sammy-server

Ezután a visszavonás megerősítését kéri a yes:

Output
Please confirm you wish to revoke the certificate with the following subject:subject= commonName = sammy-serverType the word 'yes' to continue, or any other input to abort. Continue with revocation: yes. . .Revoking Certificate 8348B3F146A765581946040D5C4D590A. . .

Nézze meg a Revoking Certificate sorban a kiemelt értéket. Ez az érték a visszavont tanúsítvány egyedi sorszáma. Ha a szakasz utolsó lépésében meg akarja vizsgálni a visszavonási listát, hogy ellenőrizze, hogy a tanúsítvány szerepel-e benne, akkor erre az értékre lesz szüksége.

A művelet megerősítése után a hitelesítésszolgáltató visszavonja a tanúsítványt. A hitelesítésszolgáltatóra támaszkodó távoli rendszereknek azonban nincs módjuk ellenőrizni, hogy visszavonták-e valamelyik tanúsítványt. A felhasználók és a kiszolgálók továbbra is használhatják a tanúsítványt, amíg a hitelesítésszolgáltató tanúsítvány-visszavonási listája (Certificate Revocation List, CRL) ki nem kerül a hitelesítésszolgáltatóra támaszkodó összes rendszerhez.

A következő lépésben létrehoz egy CRL-t vagy frissít egy meglévő crl.pem fájlt.

Tanúsítvány-visszavonási lista generálása

Most, miután visszavont egy tanúsítványt, fontos, hogy frissítse a visszavont tanúsítványok listáját a hitelesítésszolgáltató kiszolgálóján. A frissített visszavonási lista birtokában meg tudja állapítani, hogy mely felhasználók és rendszerek rendelkeznek érvényes tanúsítványokkal a CA-ban.

A CRL létrehozásához futtassa a easy-rsa parancsot a gen-crl opcióval, még a ~/easy-rsa könyvtárban:

  • ./easyrsa gen-crl

Ha a ca.key fájl létrehozásakor jelszót használt, a rendszer kérni fogja annak megadására. A gen-crl parancs létrehoz egy crl.pem nevű fájlt, amely tartalmazza az adott hitelesítésszolgáltató visszavont tanúsítványainak frissített listáját.

A továbbiakban a gen-crl parancs minden egyes futtatásakor át kell adnia a frissített crl.pem fájlt az összes olyan kiszolgálónak és ügyfélnek, amely erre a hitelesítésszolgáltatóra támaszkodik. Ellenkező esetben az ügyfelek és rendszerek továbbra is képesek lesznek hozzáférni a CA-t használó szolgáltatásokhoz és rendszerekhez, mivel ezeknek a szolgáltatásoknak tudniuk kell a tanúsítvány visszavont státuszáról.

Tanúsítvány-visszavonási lista átadása

Most, miután a CA-kiszolgálón létrehozta a CRL-t, át kell adnia azt a CA-ra támaszkodó távoli rendszereknek. A fájl átviteléhez a kiszolgálókra a scp parancsot használhatja.

Megjegyzés: Ez a bemutató a CRL kézi generálását és terjesztését ismerteti. Bár léteznek robusztusabb és automatizált módszerek a visszavonási listák terjesztésére és ellenőrzésére, mint például az OCSP-Stapling, ezeknek a módszereknek a konfigurálása meghaladja ennek a cikknek a kereteit.

Győződjön meg róla, hogy nem root felhasználóként van bejelentkezve a CA-kiszolgálójára, és futtassa a következőt, a your_server_ip helyett a saját kiszolgáló IP- vagy DNS-nevét használva:

  • scp ~/easy-rsa/pki/crl.pem sammy@your_server_ip:/tmp

Most, hogy a fájl a távoli rendszeren van, az utolsó lépés az, hogy frissítse a szolgáltatásokat a visszavonási lista új példányával.

CRL-t támogató szolgáltatások frissítése

A crl.pem fájlt használó szolgáltatások frissítéséhez szükséges lépések felsorolása meghaladja ennek az útmutatónak a kereteit. Általánosságban elmondható, hogy a crl.pem fájlt a szolgáltatás által elvárt helyre kell másolnia, majd a systemctl segítségével újra kell indítania.

Mihelyt frissítette a szolgáltatásait az új crl.pem fájllal, a szolgáltatások képesek lesznek elutasítani a visszavont tanúsítványt használó ügyfelek vagy kiszolgálók kapcsolatait.

CRL tartalmának vizsgálata és ellenőrzése

Ha egy CRL fájlt szeretne megvizsgálni, például a visszavont tanúsítványok listájának megerősítéséhez, használja a következő openssl parancsot a CA-kiszolgáló easy-rsa könyvtárából a

  • cd ~/easy-rsa
  • openssl crl -in pki/crl.pem -noout -text

A parancsot bármely olyan kiszolgálón vagy rendszeren is futtathatja, amelyen a openssl eszköz a crl.pem fájl egy példányával telepítve van. Ha például átvitte a crl.pem fájlt a második rendszerére, és ellenőrizni szeretné, hogy a sammy-server tanúsítványt visszavonták-e, akkor a következőhöz hasonló openssl parancsot használhatja, a tanúsítvány visszavonásakor korábban megjegyzett sorszámot behelyettesítve az itt kiemelt sorszámmal:

  • openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590A
Output
Serial Number: 8348B3F146A765581946040D5C4D590A Revocation Date: Apr 1 20:48:02 2020 GMT

Figyelje meg, hogy a grep parancs a visszavonási lépésben megjegyzett egyedi sorszám ellenőrzésére szolgál. Most már ellenőrizheti a tanúsítvány-visszavonási lista tartalmát bármely olyan rendszeren, amely erre támaszkodik a felhasználókhoz és szolgáltatásokhoz való hozzáférés korlátozásában.

Következtetés

Ezzel a bemutatóval létrehozott egy privát tanúsítványhatóságot az Easy-RSA csomag segítségével egy önálló Ubuntu 20.04 szerveren. Megtanulta, hogyan működik a bizalmi modell a hitelesítésszolgáltatóra támaszkodó felek között. Emellett létrehoztál és aláírtál egy tanúsítványaláírási kérelmet (CSR) egy gyakorló kiszolgáló számára, majd megtanultad, hogyan lehet visszavonni egy tanúsítványt. Végül megtanulta, hogyan kell tanúsítvány-visszavonási listát (Certificate Revocation List, CRL) létrehozni és terjeszteni minden olyan rendszerhez, amely a hitelesítésszolgáltatóra támaszkodik, annak biztosítása érdekében, hogy azok a felhasználók vagy kiszolgálók, akiknek nem szabadna hozzáférniük a szolgáltatásokhoz, ne tehessék ezt meg.

Most már kiállíthat tanúsítványokat a felhasználók számára, és használhatja őket olyan szolgáltatásokkal, mint az OpenVPN. A hitelesítésszolgáltatót arra is használhatja, hogy tanúsítványokkal konfigurálja a fejlesztési és az előkészítő webkiszolgálókat, hogy biztosítsa a nem termelési környezeteket. A TLS-tanúsítványokkal rendelkező hitelesítésszolgáltató használata a fejlesztés során segíthet biztosítani, hogy a kód és a környezetek a lehető legjobban megfeleljenek a gyártási környezetnek.

Ha többet szeretne megtudni az OpenSSL használatáról, az OpenSSL Essentials: Working with SSL Certificates, Private Keys and CSRs tutorial rengeteg további információt tartalmaz, amelyek segítségével jobban megismerkedhet az OpenSSL alapjaival.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.