← Cloudflare SSL/TLS / ssl / keyless-ssl / configuration
Public DNS
Pokud nemůžete použít Nastavení Cloudflare Tunnel, můžete také vytvořit veřejný záznam DNS pro váš key server.
Tato možnost nastavení není ideální, protože záznam DNS nelze proxováno a v důsledku toho odhalí IP adresu originu vašeho key serveru.
Než začnete
Podporované platformy
Keyless bylo otestováno na amd64 a arm architektur. Binární soubor key serveru bude pravděpodobně fungovat na všech architekturách, které podporuje Go. Podpora v kódu může existovat i pro jiné procesory, ale tyto další architektury nebyly otestované.
Kromě provozu na fyzickém serveru (bare metal) by měl key server bez problémů běžet i ve virtualizovaném nebo kontejnerizovaném prostředí. Je třeba dbát na správnou konfiguraci příchozího přístupu na příslušný port TCP a na přístup k souborovému systému pro soukromé klíče (pokud používáte úložiště v souborovém systému).
Podporované operační systémy
Ke spuštění Keyless budete potřebovat podporovaný operační systém (OS). Mezi podporované operační systémy patří:
- Ubuntu 20.04 LTS (Focal), 22.04 LTS (Jammy), 24.04 LTS (Noble)
- Debian 11 (Bullseye), 12 (Bookworm), 13 (Trixie)
- RHEL 8, 9, CentOS 8 a CentOS Stream 9
- Amazon Linux 2, 2023
Důrazně doporučujeme používat operační systém, který výrobce stále podporuje (a pro který stále vydává bezpečnostní aktualizace), protože váš key server bude mít přístup k vašim soukromým klíčům.
1. Vytvoření veřejného záznamu DNS
- Otevřete terminál a spusťte
openssl rand -hex 24pro vygenerování dlouhého, náhodného hostname, například11aa40b4a5db06d4889e48e2f738950ddfa50b7349d09b5f.example.com. - Tento záznam přidejte v rozhraní svého poskytovatele DNS jako A nebo AAAA záznam směřující na IP adresu vašeho serveru Keyless SSL.
- Tento hostname použijte jako hostname serveru při inicializaci vašeho serveru Keyless SSL.
Certifikáty používané v Keyless SSL
Keyless SSL zahrnuje dva různé certifikáty. Jejich záměna je nejčastější chybou při nastavení.
| Certifikát | Co to je | SAN by měl obsahovat |
|---|---|---|
| Certifikát Edge (Keyless SSL) | Veřejný certifikát, který Cloudflare poskytuje pro váš web. | Pouze hostitelské názvy vašeho webu (například www.example.com) |
| Ověřovací certifikát serveru klíčů | Certifikát, kterým se váš key server prokazuje vůči Cloudflare. | Pouze hostname key serveru |
2. Nahrajte certifikáty Keyless SSL
Než budete moci nakonfigurovat své key servery, musíte nejprve nahrát odpovídající SSL certifikáty na edge Cloudflare. Během ukončení TLS spojení Cloudflare tyto certifikáty předloží připojujícím se prohlížečům a poté (u relací, které nejsou obnovené) komunikuje se zadaným key serverem, aby dokončil handshake.
Na Cloudflare nahrávejte certifikáty pouze s SAN, které chcete použít s Cloudflare Keyless SSL. Všechny hostname Keyless SSL musí být proxováno.
Každý certifikát používaný s Keyless SSL budete muset nahrát.
Chcete-li vytvořit certifikát Keyless v dashboardu:
-
V dashboardu Cloudflare přejděte na Edge Certificates stránce.
Přejděte na Edge Certificates ↗ -
Vyberte Nahrání certifikátu Keyless SSL.
-
V dialogovém okně pro nahrání vyplňte certifikát a další údaje a vyberte Přidat.
| Popisek | Popis | Příklady hodnot |
|---|---|---|
| Popisek serveru klíčů | Libovolný jedinečný identifikátor vašeho serveru klíčů. | “test-keyless”, “production-keyless-1” |
| Hostname serveru klíčů | Hostname vašeho key serveru, který uchovává klíč pro tento certifikát (například náhodný hostname vygenerovaný dříve). | 11aa40b4a5db06d4889e48e2f738950ddfa50b7349d09b5f.example.com |
| Port serveru klíčů | Ponechte hodnotu 2407, pokud jste ji na klíčovém serveru nezměnili. | 2407 |
| SSL certifikát | Platný SSL certifikát X509v3 (ve formátu PEM), ke kterému vlastníte soukromý klíč. | (bajty PEM) |
| Bundle method | Toto by mělo být téměř vždy Compatible. Viz Nahrávání vlastních certifikátů pro další podrobnosti. | Compatible |
Chcete-li vytvořit certifikát Keyless pomocí API, odešlete POST požadavek.
3. Nastavte a aktivujte server klíčů
Nakonec musíte nainstalovat server klíčů ve vaší infrastruktuře, naplnit ho SSL klíči certifikátů, které chcete použít k ukončení TLS na hraně sítě Cloudflare, a aktivovat server klíčů, aby mohlo dojít k vzájemnému ověření.
Instalovat
Tyto kroky jsou uvedeny také v Repozitář balíčků Cloudflare ↗.
Balíčky Debian/Ubuntu
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/gokeyless trixie main' | sudo tee /etc/apt/sources.list.d/cloudflare.list
sudo apt-get update && sudo apt-get install gokeylesssudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/gokeyless bookworm main' | sudo tee /etc/apt/sources.list.d/cloudflare.list
sudo apt-get update && sudo apt-get install gokeylesssudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/gokeyless bullseye main' | sudo tee /etc/apt/sources.list.d/cloudflare.list
sudo apt-get update && sudo apt-get install gokeylesssudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/gokeyless noble main' | sudo tee /etc/apt/sources.list.d/cloudflare.list
sudo apt-get update && sudo apt-get install gokeylesssudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/gokeyless jammy main' | sudo tee /etc/apt/sources.list.d/cloudflare.list
sudo apt-get update && sudo apt-get install gokeylesssudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg >/dev/null
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/gokeyless focal main' | sudo tee /etc/apt/sources.list.d/cloudflare.list
sudo apt-get update && sudo apt-get install gokeylessBalíčky RHEL/CentOS/Amazon Linux
Gokeyless používá CGO pro podporu PKCS#11/HSM, což vytváří závislosti na glibc. Použijte repozitář, který odpovídá vaší distribuci.
sudo dnf config-manager --add-repo https://pkg.cloudflare.com/gokeyless/rpm/gokeyless.repo
sudo dnf install gokeylesscurl -fsSl https://pkg.cloudflare.com/gokeyless/rpm/gokeyless.repo | sudo tee /etc/yum.repos.d/gokeyless.repo
sudo yum update
sudo yum install gokeylesssudo dnf config-manager --add-repo https://pkg.cloudflare.com/gokeyless/rpm-el8/gokeyless.repo
sudo dnf install gokeylesscurl -fsSl https://pkg.cloudflare.com/gokeyless/rpm-el8/gokeyless.repo | sudo tee /etc/yum.repos.d/gokeyless.repo
sudo yum update
sudo yum install gokeylessKonfigurovat
Údaje o svém účtu Cloudflare přidejte do konfiguračního souboru umístěného v /etc/keyless/gokeyless.yaml:
-
Nastavte název hostitele klíčového serveru, například
11aa40b4a5db06d4889e48e2f.example.com. Je to zároveň hodnota, kterou jste zadali při nahrávání certifikátu keyless, a jde o hostitelský název vašeho key serveru, který uchovává klíč pro tento certifikát. -
Nastavte ID zóny (najdete jej na Přehled kartě v dashboardu Cloudflare).
-
Nastavte ověřovací údaj pro registraci certifikátu serveru. gokeyless podporuje dvě možnosti:
-
API Token (doporučeno): Vytvořte API token hodnotou Zone > SSL and Certificates > Edit oprávnění. Nastavte je v konfiguraci:
api_token: "<YOUR_API_TOKEN>"Nebo použijte proměnnou prostředí
KEYLESS_API_TOKEN. -
Klíč API Origin CA (zastaralé): Nastavte API klíč Origin CA. Tato možnost přestane fungovat 30. září 2026.
-
Naplnit klíče
Nainstalujte své soukromé klíče do /etc/keyless/keys/ a nastavte uživatele a skupinu na keyless s oprávněními 400. Klíče musí být ve formátu PEM nebo DER a mít příponu .key:
ls -l /etc/keyless/keys-r-------- 1 keyless keyless 1675 Nov 18 16:44 example.com.keyPři provozu více key serverů se ujistěte, že jsou na každý z nich distribuovány všechny potřebné klíče. Zákazníci k distribuci klíčů obvykle používají buď nástroj pro správu konfigurace, jako je Salt nebo Puppet, nebo připojují /etc/keyless/keys do síťového umístění přístupného pouze vašim key serverům. Klíče se při spuštění načítají do paměti, takže síťová cesta musí být dostupná během spouštění nebo restartu procesu gokeyless.
Activate
Pro aktivaci restartujte svou instanci keyless:
- systemd:
sudo service gokeyless restart - upstart/sysvinit:
sudo /etc/init.d/gokeyless restart
Pokud tento příkaz selže, zkuste problém vyřešit tak, že kontrola logů.
Povolení příchozích připojení z Cloudflare
Během TLS handshake naváže keyless klient Cloudflare spojení s hostitelem nebo IP adresou key serveru, kterou zadáte při nahrávání certifikátu. Ve výchozím nastavení keyless klient používá cílový TCP port 2407, ten však lze změnit při nahrávání certifikátu nebo úpravou podrobností certifikátu později.
Vytvořte vlastní pravidla WAF, která vašemu key serveru povolí přijímat připojení pouze od Cloudflare. Adresy IPv4 a IPv6 pro Cloudflare najdete přes Koncový bod API pro podrobnosti o IP.