GNU/Linux >> Znalost Linux >  >> Panels >> OpenVPN

Jak nastavit a nakonfigurovat certifikační úřad na Ubuntu 22.04

Ú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í:

  1. sudo apt update
  2. 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í.

  1. 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:

  1. 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:

  1. chmod 700 /home/sammy/easy-rsa

Nakonec inicializujte PKI uvnitř easy-rsa adresář:

  1. cd ~/easy-rsa
  2. ./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:

  1. cd ~/easy-rsa
  2. 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:

  1. ./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:

  1. ./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šemu ca.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:

  1. 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 :

  1. 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
  1. sudo cp /tmp/ca.crt /usr/local/share/ca-certificates/
  2. 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.

Distribuce CentOS, Fedora, RedHat
  1. sudo cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
  2. 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í:

  1. sudo apt update
  2. 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.

  1. mkdir ~/practice-csr
  2. cd ~/practice-csr
  3. 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:

  1. 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:

  1. openssl req -new -key sammy-server.key -out server.req -subj \
  2. /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ř:

  1. 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 :

  1. 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:

  1. cd ~/easy-rsa
  2. ./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:

  1. ./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:

  1. scp pki/issued/sammy-server.crt sammy@your_server_ip:/tmp
  2. 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:

  1. Zrušte certifikát pomocí ./easyrsa revoke client_name příkaz.
  2. Vygenerujte nové CRL pomocí ./easyrsa gen-crl příkaz.
  3. 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í.
  4. 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:

  1. 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 :

  1. ./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ář:

  1. ./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. :

  1. 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:

  1. cd ~/easy-rsa
  2. 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:

  1. 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.


OpenVPN
  1. Jak nakonfigurovat server NFS a připojit sdílené složky NFS na Ubuntu 14.10

  2. Jak nainstalovat a nakonfigurovat server Redis v Ubuntu

  3. Jak nastavit WireGuard na Ubuntu 22.04

  1. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat server DHCP na Ubuntu 20.04

  3. Jak nastavit server a klienta NFS na Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 18.04

  3. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 18.04