INTEGRITY Dokumentace

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

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

  1. Otevřete terminál a spusťte openssl rand -hex 24 pro vygenerování dlouhého, náhodného hostname, například 11aa40b4a5db06d4889e48e2f738950ddfa50b7349d09b5f.example.com.
  2. 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.
  3. 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:

  1. V dashboardu Cloudflare přejděte na Edge Certificates stránce.

    Přejděte na Edge Certificates ↗
  2. Vyberte Nahrání certifikátu Keyless SSL.

  3. 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 gokeyless
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 bookworm main' | sudo tee /etc/apt/sources.list.d/cloudflare.list

sudo apt-get update && sudo apt-get install gokeyless
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 bullseye main' | sudo tee /etc/apt/sources.list.d/cloudflare.list

sudo apt-get update && sudo apt-get install gokeyless
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 noble main' | sudo tee /etc/apt/sources.list.d/cloudflare.list

sudo apt-get update && sudo apt-get install gokeyless
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 jammy main' | sudo tee /etc/apt/sources.list.d/cloudflare.list

sudo apt-get update && sudo apt-get install gokeyless
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 focal main' | sudo tee /etc/apt/sources.list.d/cloudflare.list

sudo apt-get update && sudo apt-get install gokeyless

Balíč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 gokeyless
curl -fsSl https://pkg.cloudflare.com/gokeyless/rpm/gokeyless.repo | sudo tee /etc/yum.repos.d/gokeyless.repo
sudo yum update
sudo yum install gokeyless
sudo dnf config-manager --add-repo https://pkg.cloudflare.com/gokeyless/rpm-el8/gokeyless.repo
sudo dnf install gokeyless
curl -fsSl https://pkg.cloudflare.com/gokeyless/rpm-el8/gokeyless.repo | sudo tee /etc/yum.repos.d/gokeyless.repo
sudo yum update
sudo yum install gokeyless

Konfigurovat

Údaje o svém účtu Cloudflare přidejte do konfiguračního souboru umístěného v /etc/keyless/gokeyless.yaml:

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

  2. Nastavte ID zóny (najdete jej na Přehled kartě v dashboardu Cloudflare).

  3. 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.key

Př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:

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.