Úvodní informace
Certifikační autorita (CA) je klíčovým prvkem v oblasti digitální bezpečnosti. Jedná se o důvěryhodnou entitu, která generuje a spravuje digitální certifikáty. Tyto certifikáty slouží k ověřování totožnosti různých subjektů, jako jsou webové servery, e-mailové služby či jednotliví uživatelé. Hlavním úkolem certifikátů je zajištění důvěrnosti, integrity a autenticity při elektronické komunikaci. CA tedy hraje zásadní roli v procesu ověřování a potvrzování identity subjektů, pro které jsou certifikáty určeny.
Rozlišujeme dva základní typy certifikačních autorit: komerční a interní. Komerční CA jsou nezávislé společnosti poskytující certifikační služby za úplatu. Naproti tomu interní CA jsou provozovány přímo organizacemi, které takto vydávají certifikáty pro vlastní potřebu v rámci interní sítě.
Tento návod vás provede procesem nastavení a konfigurace interní certifikační autority na serveru s operačním systémem Debian 11. Zaměříme se na použití nástroje OpenSSL, který představuje robustní open-source sadu nástrojů pro zabezpečení komunikace.
Instalace OpenSSL
Začneme instalací balíčku OpenSSL na server Debian 11. K tomu použijte následující příkaz:
apt install openssl
Vytvoření kořenového klíče a certifikátu CA
Kořenový klíč CA je soukromý klíč, který se používá k podepisování všech certifikátů vydávaných danou CA. Kořenový certifikát CA je veřejný klíč, který odpovídá kořenovému klíči a slouží k ověření certifikátů podepsaných CA.
1. Generování kořenového klíče CA
Použijte následující příkaz pro vytvoření 4096bitového kořenového klíče CA:
openssl genrsa -out rootCA.key 4096
2. Generování kořenového certifikátu CA
Následně vytvořte odpovídající kořenový certifikát CA pomocí tohoto příkazu:
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1095 -out rootCA.crt
V tomto příkazu:
-x509
specifikuje typ generovaného certifikátu.-new
indikuje, že se jedná o nový certifikát.-nodes
zajišťuje, že certifikát nebude obsahovat privátní klíč.-key rootCA.key
definuje privátní klíč použitý pro podepsání certifikátu.-sha256
stanovuje použitý hashovací algoritmus.-days 1095
určuje platnost certifikátu (v tomto případě 3 roky).-out rootCA.crt
určuje název výstupního souboru s kořenovým certifikátem CA.
Vytváření subjektů a vydávání certifikátů
Po nastavení CA můžeme přistoupit k vytváření subjektů a vydávání certifikátů.
1. Vytvoření subjektu
a. Generování privátního klíče subjektu
Pro vytvoření privátního klíče subjektu použijte následující příkaz:
openssl genrsa -out server.key 2048
b. Generování žádosti o podpis certifikátu (CSR)
Dále vytvořte žádost o podpis certifikátu (CSR) pro subjekt pomocí tohoto příkazu:
openssl req -new -key server.key -out server.csr
c. Přidání SAN rozšíření do CSR
Pro přidání alternativních jmen subjektů (SAN) použijte následující příkaz:
openssl x509 -req -in server.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out server.crt -days 365 -sha256 -extfile san.ext
Soubor san.ext
by měl obsahovat seznam SAN, například:
subjectAltName = DNS:example.com,DNS:*.example.com
2. Vydání certifikátu subjektu
Po vytvoření CSR můžete vydat certifikát subjektu pomocí následujícího příkazu:
openssl ca -in server.csr -out server.crt -cert rootCA.crt -keyfile rootCA.key -extensions v3_req -config openssl.cnf
V tomto příkazu:
-in server.csr
specifikuje soubor s CSR subjektu.-out server.crt
určuje název výstupního souboru s certifikátem subjektu.-cert rootCA.crt
definuje kořenový certifikát CA pro podepisování.-keyfile rootCA.key
specifikuje kořenový klíč CA pro podepisování.-extensions v3_req
nařizuje načtení rozšíření SAN z CSR.-config openssl.cnf
určuje konfigurační soubor OpenSSL.
Ověření certifikátu
Po vydání certifikátu můžete provést jeho ověření pomocí příkazu:
openssl x509 -in server.crt -noout -text
Závěr
Gratulujeme, úspěšně jste nastavili a nakonfigurovali certifikační autoritu (CA) na serveru s Debianem 11. Tato CA je nyní schopna vydávat digitální certifikáty, které zajistí důvěrnost, integritu a autentizaci v elektronické komunikaci.
Po vytvoření CA a vydání certifikátů můžete nakonfigurovat své webové a e-mailové servery tak, aby tyto certifikáty využívaly pro zabezpečenou komunikaci.
Často kladené dotazy
1. Jaký je rozdíl mezi komerční a interní CA?
Komerční CA jsou třetí strany poskytující certifikační služby za úplatu, zatímco interní CA si organizace provozují samy pro vlastní potřebu.
2. Kolik CA je vhodné vytvořit?
Doporučuje se mít alespoň jednu kořenovou CA a jednu podřízenou CA. Kořenová CA by měla sloužit pouze k podepisování podřízených CA, které se následně využijí k podepisování certifikátů jednotlivých subjektů.
3. Jak dlouho by měl certifikát platit?
Doba platnosti certifikátu je závislá na typu certifikátu a účelu, pro který je vydán. Obecně se doporučuje platnost 1 až 2 roky.
4. Jakým způsobem mohu certifikát zrušit?
Certifikát lze zrušit prostřednictvím seznamu zrušených certifikátů (CRL). CRL je seznam certifikátů, které byly z CA odvolány.
5. Jak nakonfigurovat služby pro používání certifikátů vydaných mnou vytvořenou CA?
Konfigurace služeb je individuální a závisí na typu služby. Obvykle je však potřeba nainstalovat kořenový certifikát CA do důvěryhodného úložiště certifikátů dané služby a následně nakonfigurovat službu tak, aby používala certifikát subjektu, který vydala vaše CA.
6. Co se stane při ztrátě privátního klíče CA?
Ztráta privátního klíče CA znemožní podepisování nových certifikátů i rušení stávajících. V takovém případě je nutné vytvořit novou CA a vydat nové certifikáty pro všechny subjekty.
7. Jak mohu obnovit kořenový certifikát CA?
Obnovení kořenového certifikátu CA zahrnuje:
- Vytvoření nového privátního klíče CA.
- Vytvoření nového kořenového certifikátu CA podepsaného novým privátním klíčem.
- Nahrazení stávajícího kořenového certifikátu CA novým.
- Aktualizaci seznamu důvěryhodných kořenových certifikátů u všech služeb o nový kořenový certifikát CA.
8. Jak mohu provést audit své CA?
Audit CA je možné provést několika způsoby:
- Kontrolou logů.