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
Outputinit-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/varsset_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 aca.key
fájlhoz, akkor meg kell semmisítenie a hitelesítésszolgáltatót. Ezért aca.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:
- 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.
- 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
OutputGenerating 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
Outputsubject=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:
OutputYou 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:
- Vonja vissza a tanúsítványt a
./easyrsa revoke client_name
paranccsal. - Generáljon új CRL-t a
./easyrsa gen-crl
paranccsal. - 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. - 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
:
OutputPlease 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.