Úvod
Certifikační autorita (CA) je subjekt odpovědný za vydávání digitálních certifikátů k ověření identity na internetu. Ačkoli jsou veřejné CA oblíbenou volbou pro ověřování identity webových stránek a dalších služeb, které jsou poskytovány široké veřejnosti, soukromé CA se obvykle používají pro uzavřené skupiny a soukromé služby.
Vytvoření soukromé certifikační autority vám umožní konfigurovat, testovat a spouštět programy, které vyžadují šifrovaná připojení mezi klientem a serverem. Pomocí soukromé CA můžete vydávat certifikáty pro uživatele, servery nebo jednotlivé programy a služby v rámci vaší infrastruktury.
Některé příklady programů v Linuxu, které používají své vlastní soukromé CA, jsou OpenVPN a Puppet. Svůj webový server můžete také nakonfigurovat tak, aby používal certifikáty vydané soukromou CA, aby se vývojová a přípravná prostředí shodovala s produkčními servery, které používají TLS k šifrování připojení.
V této příručce nastavíte soukromou certifikační autoritu na serveru Ubuntu 22.04 a poté pomocí své nové CA vygenerujete a podepíšete testovací certifikát. Dozvíte se také, jak importovat veřejný certifikát serveru CA do úložiště certifikátů vašeho operačního systému, abyste mohli ověřit řetězec důvěry mezi CA a vzdálenými servery nebo uživateli. Nakonec se naučíte, jak zrušit certifikáty a distribuovat seznam zneplatněných certifikátů, abyste měli jistotu, že pouze oprávnění uživatelé a systémy mohou používat služby, které závisí na vaší CA.
Předpoklady
K dokončení tohoto kurzu budete potřebovat přístup k serveru Ubuntu 22.04, který bude hostovat váš server CA. Budete muset nakonfigurovat jiný než root uživatel pomocí sudo
oprávnění, než začnete s touto příručkou. Chcete-li nastavit uživatele s příslušnými oprávněními, můžete postupovat podle našeho průvodce počátečním nastavením serveru Ubuntu 22.04. Propojený výukový program také nastaví firewall , o kterém se předpokládá, že je na místě v celé této příručce.
Tento server bude označován jako CA Server v tomto tutoriálu.
Ujistěte se, že CA Server je samostatný systém. Bude použit pouze k importu, podepisování a odvolávání žádostí o certifikát. Neměl by spouštět žádné další služby a v ideálním případě bude offline nebo zcela vypnutý, když aktivně nepracujete se svou CA.
Poznámka: Poslední část tohoto kurzu je volitelná, pokud se chcete dozvědět o podepisování a rušení certifikátů. Pokud se rozhodnete dokončit tyto cvičné kroky, budete potřebovat druhý server Ubuntu 22.04 nebo můžete také použít svůj vlastní místní počítač se systémem Linux se systémem Ubuntu nebo Debian nebo distribucemi odvozenými od obou z nich.
Krok 1 – Instalace Easy-RSA
Prvním úkolem v tomto tutoriálu je nainstalovat easy-rsa
sadu skriptů na serveru CA. easy-rsa
je nástroj pro správu certifikační autority, který budete používat ke generování soukromého klíče a veřejného kořenového certifikátu, které pak použijete k podepisování požadavků od klientů a serverů, které budou záviset na vaší CA.
Přihlaste se na svůj CA Server jako uživatel sudo bez oprávnění root, kterého jste vytvořili během počátečních kroků nastavení, a spusťte následující:
- sudo apt update
- sudo apt install easy-rsa
Budete vyzváni ke stažení balíčku a jeho instalaci. Stiskněte y
potvrďte, že chcete balíček nainstalovat.
V tomto okamžiku máte vše, co potřebujete, nastavit a připravit Easy-RSA k použití. V dalším kroku vytvoříte infrastrukturu veřejného klíče a poté začnete budovat certifikační autoritu.
Krok 2 — Příprava adresáře infrastruktury veřejného klíče
Nyní, když jste nainstalovali easy-rsa
, je čas vytvořit základní infrastrukturu veřejného klíče (PKI) na serveru CA. Ujistěte se, že jste stále přihlášeni jako uživatel bez oprávnění root, a vytvořte easy-rsa
adresář. Ujistěte se, že nepoužíváte sudo spustit některý z následujících příkazů, protože váš běžný uživatel by měl spravovat a komunikovat s CA bez zvýšených oprávnění.
- mkdir ~/easy-rsa
Tím se vytvoří nový adresář s názvem easy-rsa
ve vaší domovské složce. Tento adresář použijeme k vytvoření symbolických odkazů směřujících na easy-rsa
soubory balíčků, které jsme nainstalovali v předchozím kroku. Tyto soubory jsou umístěny v /usr/share/easy-rsa
složky na serveru CA.
Vytvořte symbolické odkazy pomocí ln
příkaz:
- ln -s /usr/share/easy-rsa/* ~/easy-rsa/
Poznámka: Zatímco ostatní příručky vám mohou dát pokyn, abyste zkopírovali easy-rsa
zabalit soubory do vašeho adresáře PKI, tento tutoriál využívá přístup symbolických odkazů. V důsledku toho budou všechny aktualizace easy-rsa
balíček se automaticky projeví ve skriptech vašeho PKI.
Chcete-li omezit přístup k vašemu novému adresáři PKI, zajistěte, aby k němu měl přístup pouze vlastník pomocí chmod
příkaz:
- chmod 700 /home/sammy/easy-rsa
Nakonec inicializujte PKI uvnitř easy-rsa
adresář:
- 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
Po dokončení této části máte adresář, který obsahuje všechny soubory potřebné k vytvoření certifikační autority. V další části vytvoříte soukromý klíč a veřejný certifikát pro vaši CA.
Krok 3 – Vytvoření certifikační autority
Než budete moci vytvořit soukromý klíč a certifikát vaší CA, musíte vytvořit a naplnit soubor s názvem vars
s některými výchozími hodnotami. Nejprve cd
do easy-rsa
adresář, pak vytvoříte a upravíte vars
soubor s nano
nebo váš preferovaný textový editor:
- cd ~/easy-rsa
- nano vars
Po otevření souboru vložte následující řádky a upravte každou zvýrazněnou hodnotu tak, aby odrážela informace o vaší organizaci. Zde je důležité zajistit, abyste žádnou z hodnot nenechali prázdnou:
~/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"
Až budete hotovi, uložte a zavřete soubor. Pokud používáte nano
, můžete tak učinit stisknutím CTRL+X
a poté Y
a ENTER
potvrdit. Nyní jste připraveni vytvořit svůj CA.
Chcete-li vytvořit pár kořenového veřejného a soukromého klíče pro certifikační autoritu, spusťte ./easy-rsa
znovu, tentokrát s build-ca
možnost:
- ./easyrsa build-ca
Ve výstupu uvidíte několik řádků o verzi OpenSSL a budete vyzváni k zadání přístupové fráze pro váš pár klíčů. Ujistěte se, že jste zvolili silnou přístupovou frázi a poznamenejte si ji na bezpečném místě. Přístupovou frázi budete muset zadat kdykoli, když budete potřebovat interakci s vaší CA, například při podepsání nebo odvolání certifikátu.
Budete také požádáni o potvrzení Common Name (CN) pro vaši CA. CN je název používaný k označení tohoto stroje v kontextu certifikační autority. Jako Common Name CA můžete zadat libovolný řetězec znaků, ale pro zjednodušení stiskněte ENTER pro přijetí výchozího názvu.
Output. . .
Enter New CA Key Passphrase:
Re-Enter New CA Key Passphrase:
. . .
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
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
Poznámka: Pokud nechcete být vyzváni k zadání hesla při každé interakci s vaší certifikační autoritou, můžete spustit build-ca
pomocí příkazu nopass
možnost, jako je tato:
- ./easyrsa build-ca nopass
Nyní máte dva důležité soubory — ~/easy-rsa/pki/ca.crt
a ~/easy-rsa/pki/private/ca.key
— které tvoří veřejné a soukromé součásti certifikačního úřadu.
-
ca.crt
je soubor veřejného certifikátu CA. Uživatelé, servery a klienti budou tento certifikát používat k ověření, že jsou součástí stejné sítě důvěry. Každý uživatel a server, který používá vaši certifikační autoritu, bude muset mít kopii tohoto souboru. Všechny strany se budou spoléhat na veřejný certifikát, aby zajistily, že se někdo nevydává za systém a neprovádí útok typu Man-in-the-middle. -
ca.key
je soukromý klíč, který CA používá k podepisování certifikátů pro servery a klienty. Pokud útočník získá přístup k vaší CA a následně k vašemuca.key
soubor, budete muset zničit svůj CA. To je důvod, proč vášca.key
soubor by měl pouze být na vašem počítači CA a že v ideálním případě by měl být váš počítač CA udržován offline, když nepodepisuje žádosti o certifikát jako další bezpečnostní opatření.
Díky tomu je vaše CA na svém místě a je připravena k použití k podepisování žádostí o certifikát a k odvolávání certifikátů.
Krok 4 – Distribuce veřejného certifikátu vaší certifikační autority
Nyní je vaše certifikační autorita nakonfigurována a připravena fungovat jako kořen důvěryhodnosti pro všechny systémy, které chcete nakonfigurovat, aby ji používaly. Certifikát CA můžete přidat na své servery OpenVPN, webové servery, poštovní servery a tak dále. Každý uživatel nebo server, který potřebuje ověřit identitu jiného uživatele nebo serveru ve vaší síti, by měl mít kopii ca.crt
soubor importovaný do úložiště certifikátů jejich operačního systému.
Chcete-li importovat veřejný certifikát CA do druhého systému Linux, jako je jiný server nebo místní počítač, nejprve si získejte kopii ca.crt
soubor ze serveru CA. Můžete použít cat
pro výstup do terminálu a poté jej zkopírujte a vložte do souboru na druhém počítači, který certifikát importuje. Můžete také použít nástroje jako scp
, rsync
k přenosu souboru mezi systémy. My však použijeme kopírování a vkládání s nano
v tomto kroku, protože bude fungovat na všech systémech.
Jako uživatel bez oprávnění root na serveru CA spusťte následující příkaz:
- cat ~/easy-rsa/pki/ca.crt
Ve vašem terminálu bude výstup podobný následujícímu:
Output-----BEGIN CERTIFICATE-----
MIIDSzCCAjOgAwIBAgIUcR9Crsv3FBEujrPZnZnU4nSb5TMwDQYJKoZIhvcNAQEL
BQAwFjEUMBIGA1UEAwwLRWFzeS1SU0EgQ0EwHhcNMjAwMzE4MDMxNjI2WhcNMzAw
. . .
. . .
-----END CERTIFICATE-----
Zkopírujte vše, včetně -----BEGIN CERTIFICATE-----
a -----END CERTIFICATE-----
čáry a pomlčky.
Na vašem druhém systému Linux použijte nano
nebo váš preferovaný textový editor a otevřete soubor s názvem /tmp/ca.crt
:
- nano /tmp/ca.crt
Vložte obsah, který jste právě zkopírovali ze serveru CA, do editoru. Až budete hotovi, uložte a zavřete soubor. Pokud používáte nano
, můžete tak učinit stisknutím CTRL+X
a poté Y
a ENTER
pro potvrzení.
Nyní, když máte kopii ca.crt
soubor na vašem druhém systému Linux, je čas importovat certifikát do jeho úložiště certifikátů operačního systému.
Na systémech založených na Ubuntu a Debianu spusťte následující příkazy jako uživatel bez oprávnění root k importu certifikátu:
Distribuce odvozené od Ubuntu a Debianu- sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
- sudo update-ca-certificates
Chcete-li importovat certifikát CA Serveru do systému CentOS, Fedora nebo RedHat, zkopírujte a vložte obsah souboru do systému stejně jako v předchozím příkladu do souboru s názvem /tmp/ca.crt
. Dále zkopírujte certifikát do /etc/pki/ca-trust/source/anchors/
a poté spusťte update-ca-trust
příkaz.
- sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
- sudo update-ca-trust
Nyní bude váš druhý systém Linux důvěřovat každému certifikátu, který byl podepsán serverem CA.
Poznámka: Pokud používáte CA s webovými servery a používáte Firefox jako prohlížeč, budete muset importovat veřejný ca.crt
certifikát přímo do Firefoxu. Firefox nepoužívá úložiště certifikátů místního operačního systému. Podrobnosti o tom, jak přidat certifikát vaší CA do Firefoxu, najdete v tomto článku podpory od Mozilly o nastavení certifikačních autorit (CA) ve Firefoxu.
Pokud používáte svou certifikační autoritu k integraci s prostředím Windows nebo stolními počítači, prostudujte si dokumentaci o použití certutil.exe
k instalaci certifikátu CA.
Pokud používáte tento výukový program jako předpoklad pro další výukový program nebo jste obeznámeni s tím, jak podepisovat a odvolávat certifikáty, můžete zde přestat. Pokud byste se chtěli dozvědět více o tom, jak podepisovat a odvolávat certifikáty, pak následující volitelná část podrobně vysvětlí každý proces.
(Volitelné) — Vytváření požadavků na podepisování certifikátů a rušení certifikátů
Následující části výukového programu jsou volitelné. Pokud jste dokončili všechny předchozí kroky, máte plně nakonfigurovanou a fungující certifikační autoritu, kterou můžete použít jako předpoklad pro další kurzy. Můžete importovat ca.crt
vaší CA založte a ověřte certifikáty ve vaší síti, které byly podepsány vaší CA.
Pokud byste si chtěli procvičit a dozvědět se více o tom, jak podepisovat žádosti o certifikáty a jak certifikáty odvolávat, pak tyto volitelné části vysvětlí, jak oba procesy fungují.
(Volitelné) — Vytvoření a podepsání žádosti o certifikát praxe
Nyní, když máte CA připravenou k použití, můžete si vyzkoušet generování soukromého klíče a žádosti o certifikát, abyste se seznámili s procesem podepisování a distribuce.
Požadavek na podepsání certifikátu (CSR) se skládá ze tří částí:veřejného klíče, který identifikuje informace o žádajícím systému, a podpisu samotného požadavku, který je vytvořen pomocí soukromého klíče žádající strany. Soukromý klíč bude uchováván v tajnosti a bude použit k šifrování informací, které pak může dešifrovat kdokoli s podepsaným veřejným certifikátem.
Následující kroky budou spuštěny na vašem druhém systému Ubuntu nebo Debian nebo distribuci, která je odvozena od kteréhokoli z nich. Může to být jiný vzdálený server nebo místní počítač se systémem Linux, jako je notebook nebo stolní počítač. Od easy-rsa
není ve výchozím nastavení k dispozici na všech systémech, použijeme openssl
nástroj k vytvoření praktického soukromého klíče a certifikátu.
openssl
je obvykle nainstalován ve výchozím nastavení na většině distribucí Linuxu, ale pro jistotu spusťte na svém systému následující:
- sudo apt update
- sudo apt install openssl
Až budete vyzváni k instalaci openssl
zadejte y
pokračujte v instalačních krocích. Nyní jste připraveni vytvořit cvičnou CSR pomocí openssl
.
Prvním krokem, který musíte dokončit, abyste vytvořili CSR, je vygenerování soukromého klíče. Chcete-li vytvořit soukromý klíč pomocí openssl
, vytvořte practice-csr
adresář a poté v něm vygenerujte klíč. Tento požadavek provedeme pro fiktivní server s názvem sammy-server
, na rozdíl od vytvoření certifikátu, který se používá k identifikaci uživatele nebo jiného CA.
- mkdir ~/practice-csr
- cd ~/practice-csr
- openssl genrsa -out sammy-server.key
Nyní, když máte soukromý klíč, můžete vytvořit odpovídající CSR, opět pomocí openssl
užitečnost. Budete vyzváni k vyplnění řady polí, jako je Země, Stát a Město. Můžete zadat .
pokud chcete nechat pole prázdné, ale uvědomte si, že pokud by se jednalo o skutečnou CSR, je nejlepší použít správné hodnoty pro vaši lokalitu a organizaci:
- openssl req -new -key sammy-server.key -out sammy-server.req
Output. . .
-----
Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:New York
Locality Name (eg, city) [Default City]:New York City
Organization Name (eg, company) [Default Company Ltd]:DigitalOcean
Organizational Unit Name (eg, section) []:Community
Common Name (eg, your name or your server's hostname) []:sammy-server
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Pokud chcete tyto hodnoty automaticky přidat jako součást openssl
vyvolání namísto přes interaktivní výzvu můžete předat -subj
argument pro OpenSSL. Nezapomeňte upravit zvýrazněné hodnoty tak, aby odpovídaly umístění vaší praxe, organizaci a názvu serveru:
- 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
Chcete-li ověřit obsah CSR, můžete si přečíst soubor požadavku pomocí openssl
a prozkoumejte pole uvnitř:
- 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
Jakmile budete spokojeni s předmětem vaší žádosti o osvědčení o praxi, zkopírujte sammy-server.req
soubor na váš server CA pomocí scp
:
- scp sammy-server.req sammy@your_ca_server_ip:/tmp/sammy-server.req
V tomto kroku jste vygenerovali žádost o podpis certifikátu pro fiktivní server s názvem sammy-server
. Ve scénáři reálného světa může požadavek pocházet z něčeho jako je pracovní nebo vývojový webový server, který potřebuje certifikát TLS pro testování; nebo může pocházet ze serveru OpenVPN, který požaduje certifikát, aby se uživatelé mohli připojit k VPN. V dalším kroku přistoupíme k podepsání žádosti o podpis certifikátu pomocí soukromého klíče CA Serveru.
(Volitelné) — Podepsání CSR
V předchozím kroku jste vytvořili žádost o cvičný certifikát a klíč pro fiktivní server. Zkopírovali jste jej do /tmp
adresář na vašem CA serveru, emulující proces, který byste použili, kdybyste měli skutečné klienty nebo servery, které vám zasílají CSR požadavky, které je třeba podepsat.
Pokračujeme ve fiktivním scénáři a nyní CA Server potřebuje importovat cvičný certifikát a podepsat jej. Jakmile je žádost o certifikát ověřena CA a předána zpět serveru, klienti, kteří důvěřují certifikační autoritě, budou moci důvěřovat i nově vydanému certifikátu.
Protože budeme fungovat v rámci PKI CA, kde easy-rsa
je k dispozici nástroj, kroky podepisování budou používat easy-rsa
nástroj pro usnadnění práce, na rozdíl od použití openssl
přímo jako v předchozím příkladu.
Prvním krokem k podepsání fiktivního CSR je import žádosti o certifikát pomocí easy-rsa
skript:
- 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-server
You may now use this name to perform signing operations on this request.
Nyní můžete žádost podepsat spuštěním easyrsa
skript s sign-req
následuje typ požadavku a Common Name, který je součástí CSR. Typ požadavku může být jeden z client
, server
, nebo ca
. Protože cvičíme s certifikátem pro fiktivní server, nezapomeňte použít server
typ požadavku:
- ./easyrsa sign-req server sammy-server
Ve výstupu budete požádáni o ověření, že požadavek pochází z důvěryhodného zdroje. Zadejte yes
poté stiskněte ENTER
pro potvrzení:
OutputYou are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.
Request subject, to be signed as a server certificate for 825 days:
subject=
countryName = US
stateOrProvinceName = New York
localityName = New York City
organizationName = DigitalOcean
organizationalUnitName = Community
commonName = sammy-server
Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes
. . .
Pokud jste zašifrovali svůj klíč CA, budete v tomto okamžiku vyzváni k zadání hesla.
Obdržíte výstup podobný následujícímu:
OutputCheck that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'US'
stateOrProvinceName :ASN.1 12:'New York'
localityName :ASN.1 12:'New York City'
organizationName :ASN.1 12:'DigitalOcean'
organizationalUnitName:ASN.1 12:'Community'
commonName :ASN.1 12:'sammy-server'
Certificate is to be certified until Jul 21 13:59:08 2024 GMT (825 days)
Write out database with 1 new entries
Data Base Updated
Certificate created at: /home/sammy/easy-rsa/pki/issued/sammy-server.crt
Po dokončení těchto kroků jste podepsali sammy-server.req
CSR pomocí soukromého klíče CA Serveru v /home/sammy/easy-rsa/pki/private/ca.key
. Výsledný sammy-server.crt
obsahuje veřejný šifrovací klíč cvičného serveru a také nový podpis ze serveru CA. Účelem podpisu je říci každému, kdo důvěřuje CA, že může důvěřovat také sammy-server
certifikát.
Pokud by se tento požadavek týkal skutečného serveru, jako je webový server nebo server VPN, posledním krokem na serveru CA by byla distribuce nového sammy-server.crt
a ca.crt
soubory ze serveru CA na vzdálený server, který provedl požadavek CSR:
- scp pki/issued/sammy-server.crt sammy@your_server_ip:/tmp
- scp pki/ca.crt sammy@your_server_ip:/tmp
V tomto okamžiku byste mohli použít vydaný certifikát s něčím, jako je webový server, VPN, nástroj pro správu konfigurace, databázový systém nebo pro účely autentizace klienta.
(Volitelné) — Zrušení certifikátu
Občas může být nutné certifikát zrušit, aby jej uživatel nebo server nemohl používat. Možná byl někomu ukraden notebook, napadený webový server nebo zaměstnanec či dodavatel opustil vaši organizaci.
Chcete-li certifikát zrušit, obecný proces se řídí těmito kroky:
- Zrušte certifikát pomocí
./easyrsa revoke client_name
příkaz. - Vygenerujte nové CRL pomocí
./easyrsa gen-crl
příkaz. - Přeneste aktualizovaný soubor
crl.pem
soubor na server nebo servery, které se spoléhají na vaši CA, a na těchto systémech jej zkopírujte do požadovaného adresáře nebo adresářů pro programy, které na něj odkazují. - Restartujte všechny služby, které používají vaši certifikační autoritu a soubor CRL.
Tento proces můžete kdykoli použít k odvolání jakýchkoli certifikátů, které jste dříve vydali. Každý krok si podrobně projdeme v následujících částech, počínaje revoke
příkaz.
Zrušení certifikátu
Chcete-li certifikát zrušit, přejděte na easy-rsa
adresář na vašem serveru CA:
- cd ~/easy-rsa
Dále spusťte easyrsa
skript s revoke
možnost a za ním jméno klienta, kterého chcete zrušit. Podle výše uvedeného příkladu je běžný název certifikátu sammy-server
:
- ./easyrsa revoke sammy-server
Tím budete požádáni o potvrzení odvolání zadáním yes
:
OutputPlease confirm you wish to revoke the certificate with the following subject:
subject=
commonName = sammy-server
Type the word 'yes' to continue, or any other input to abort.
Continue with revocation: yes
. . .
Revoking Certificate 8348B3F146A765581946040D5C4D590A
. . .
Všimněte si zvýrazněné hodnoty na Revoking Certificate
čára. Tato hodnota je jedinečné sériové číslo certifikátu, který je odvoláván. Tuto hodnotu budete potřebovat, pokud chcete v posledním kroku této části prozkoumat seznam odvolání a ověřit, zda se v něm certifikát nachází.
Po potvrzení akce CA certifikát zneplatní. Vzdálené systémy, které se spoléhají na CA, však nemají žádný způsob, jak zkontrolovat, zda byly nějaké certifikáty odvolány. Uživatelé a servery budou moci certifikát stále používat, dokud nebude seznam odvolaných certifikátů (CRL) CA distribuován všem systémům, které na CA spoléhají.
V dalším kroku vygenerujete CRL nebo aktualizujete existující crl.pem
soubor.
Generování seznamu zneplatněných certifikátů
Nyní, když jste odvolali certifikát, je důležité aktualizovat seznam odvolaných certifikátů na serveru CA. Jakmile budete mít aktualizovaný seznam odvolání, budete moci zjistit, kteří uživatelé a systémy mají platné certifikáty ve vaší CA.
Chcete-li vygenerovat CRL, spusťte easy-rsa
pomocí příkazu gen-crl
možnost, zatímco jste stále uvnitř ~/easy-rsa
adresář:
- ./easyrsa gen-crl
Pokud jste při vytváření ca.key
použili přístupovou frázi soubor, budete vyzváni k jeho zadání. gen-crl
příkaz vygeneruje soubor s názvem crl.pem
obsahující aktualizovaný seznam odvolaných certifikátů pro danou CA.
Dále budete muset přenést aktualizovaný crl.pem
soubor na všechny servery a klienty, kteří se spoléhají na tuto CA pokaždé, když spustíte gen-crl
příkaz. V opačném případě budou mít klienti a systémy stále přístup ke službám a systémům, které používají vaši CA, protože tyto služby potřebují vědět o stavu odvolaného certifikátu.
Přenos seznamu zneplatněných certifikátů
Nyní, když jste na serveru CA vygenerovali CRL, musíte jej přenést do vzdálených systémů, které spoléhají na vaši CA. K přenosu tohoto souboru na vaše servery můžete použít scp
příkaz.
Poznámka: Tento tutoriál vysvětluje, jak ručně vygenerovat a distribuovat CRL. I když existují robustnější a automatizované metody pro distribuci a kontrolu seznamů odvolání, jako je OCSP-Stapling, konfigurace těchto metod přesahuje rozsah tohoto článku.
Ujistěte se, že jste přihlášeni k serveru CA jako uživatel bez oprávnění root, a spusťte následující, přičemž místo your_server_ip
nahraďte IP nebo DNS vlastním jménem svého serveru. :
- scp ~/easy-rsa/pki/crl.pem sammy@your_server_ip:/tmp
Nyní, když je soubor ve vzdáleném systému, je posledním krokem aktualizace všech služeb pomocí nové kopie seznamu odvolání.
Aktualizace služeb, které podporují CRL
Seznam kroků, které musíte použít k aktualizaci služeb, které používají crl.pem
soubor je nad rámec tohoto návodu. Obecně budete muset zkopírovat crl.pem
soubor do umístění, které služba očekává, a poté jej restartujte pomocí systemctl
.
Jakmile aktualizujete své služby pomocí nového crl.pem
vaše služby budou moci odmítnout připojení od klientů nebo serverů, které používají odvolaný certifikát.
Zkoumání a ověřování obsahu seznamu CRL
Pokud byste chtěli prozkoumat soubor CRL, například pro potvrzení seznamu odvolaných certifikátů, použijte následující openssl
příkaz z vašeho easy-rsa
adresář na vašem serveru CA:
- cd ~/easy-rsa
- openssl crl -in pki/crl.pem -noout -text
Tento příkaz můžete také spustit na libovolném serveru nebo systému, který má openssl
nástroj nainstalovaný s kopií crl.pem
soubor. Pokud jste například přenesli crl.pem
soubor do vašeho druhého systému a chcete ověřit, že sammy-server
certifikát zneplatněn, můžete použít openssl
příkaz, jako je následující, nahrazující sériové číslo, které jste si poznamenali dříve, když jste odvolali certifikát, namísto zde zvýrazněného:
- openssl crl -in /tmp/crl.pem -noout -text |grep -A 1 8348B3F146A765581946040D5C4D590A
Output Serial Number: 8348B3F146A765581946040D5C4D590A
Revocation Date: Apr 18 14:00:37 2022 GMT
Všimněte si, jak grep
příkaz se používá ke kontrole jedinečného sériového čísla, které jste si poznamenali v kroku odvolání. Nyní můžete ověřit obsah vašeho seznamu zneplatněných certifikátů na jakémkoli systému, který na něj spoléhá při omezování přístupu uživatelům a službám.
Závěr
V tomto tutoriálu jste vytvořili soukromou certifikační autoritu pomocí balíčku Easy-RSA na samostatném serveru Ubuntu 22.04. Prozkoumali jste, jak funguje model důvěry mezi stranami, které se spoléhají na CA. Také jste vytvořili a podepsali žádost o podpis certifikátu (CSR) pro cvičný server a poté jste se naučili, jak zrušit certifikát. Nakonec jste se naučili, jak generovat a distribuovat seznam odvolaných certifikátů (CRL) pro jakýkoli systém, který spoléhá na vaši CA, abyste zajistili, že uživatelé nebo servery, kteří by neměli přistupovat ke službám, v tom nebudou mít přístup.
Nyní můžete uživatelům vydávat certifikáty a používat je se službami, jako je OpenVPN. Svou CA můžete také použít ke konfiguraci vývojových a přípravných webových serverů s certifikáty pro zabezpečení vašich neprodukčních prostředí. Použití CA s certifikáty TLS během vývoje může pomoci zajistit, aby váš kód a prostředí co nejpřesněji odpovídaly vašemu produkčnímu prostředí.
If you would like to learn more about how to use OpenSSL, our OpenSSL Essentials:Working with SSL Certificates, Private Keys and CSRs tutorial has lots of additional information to help you become more familiar with OpenSSL fundamentals.