Dva soubory, dvě direktivy a zvyk pojmenovat oba podle toho, co nastavují. Tak se dh.pem ocitne na řádku tls-auth a klient selže se zprávou o neočekávaném formátu klíče. Rozhodnutí před vámi není, který soubor je silnější. Je to, kterou roli nasazení skutečně potřebuje, a tři podmínky to vyřeší: jakou výměnu klíčů váš TLS stack vyjedná, zda vůbec chcete autentizaci řídicího kanálu a zda musí materiál zůstat tajný.

Odpovězte na ně v pořadí a otázka souboru se odpoví sama. Přeskočte je a názvy direktiv začnou vypadat zaměnitelně, což je přesně stav, ze kterého chyba vzniká.

Přečtěte štítek dřív než název souboru

První řádek souboru je informativnější než jeho název, protože název je lidská konvence a štítek vytváří nástroj. Parametry Diffie-Hellman nesou štítek PEM BEGIN DH PARAMETERS. Statický klíč OpenVPN je zcela jiná struktura, s vlastní hlavičkou a hexadecimálním obsahem.

Přejmenování nic nepřevede. Soubor parametrů nazvaný ta.key jsou pořád parametry a statický klíč nazvaný dh.pem je pořád statický klíč; parser čte obsah a nesoulad odmítne. Zkontrolujte to před úpravou profilu:

head -n 1 dh.pem
head -n 1 ta.key

Tři podmínky, které rozhodnou, který soubor potřebujete

První podmínkou je výměna. Diffie-Hellman v konečném poli potřebuje skupinu a direktiva dh je místo, kde server parametry pro ni pojmenuje. Výměna na eliptické křivce ten soubor vůbec nepotřebuje, protože křivka je sama sada parametrů. Pokud váš server vyjednává jen sady ECDHE, je soubor DH mrtvá váha, nikoli přidaná síla.

Druhou podmínkou je autentizace řídicího kanálu, tedy samostatná funkce s vlastním materiálem. Soubor tls-auth je sdílený statický klíč, který drží obě strany a kterým se podepisují pakety řídicího kanálu, aby neautentizovaná strana nemohla ani dokončit výměnu. Existuje bez ohledu na to, zda používáte DH v konečném poli, a s parametry skupiny nesouvisí.

Třetí podmínkou je utajení a distribuce. Parametry DH lze zveřejnit, aniž by to oslabilo relaci, protože tajné hodnoty se generují pro každou výměnu a nikdy neopustí strany. Statický klíč se zveřejňovat nesmí: jsou to stejné bajty na obou koncích, sám se nemění a kdokoli ho má, může vytvářet platné podpisy řídicího kanálu. Ty dvě odpovědi vedou k úplně jiným pravidlům zacházení, a proto jeden soubor může ležet v repozitáři a druhý ne.

Vytvořte správný materiál pro každou roli

Použijte nástroj, který vytváří formát očekávaný direktivou, místo převodu mezi nimi. Pro sdílený klíč v OpenVPN 2.6 typovaná podoba generátoru uvádí účel výslovně.

openvpn --genkey tls-auth ta.key

Tento příkaz vytváří nový tajný materiál; neopravuje ani neprohlíží existující klíč a jeho opětovné spuštění vám dá jiný klíč, který ostatní strany nemají. Zkopírujte výsledný soubor stranám, které ho potřebují, kanálem, který byste použili pro jakékoli sdílené tajemství, a držte konvenci směru konzistentní: s tls-auth jedna strana používá key-direction 0 a druhá key-direction 1.

Parametry DH, když je potřebujete, pocházejí z generování parametrů, nikoli z generátoru klíčů, a jejich původ je důležitý, i když je výstup veřejný. Skupina vytažená z neznámého zdroje se nestane důvěryhodnou tím, že je veřejná; stále musí být skupinou, na které se vaše strany shodnou, a takovou, kterou neoslabuje její velikost ani konstrukce.

Co dh none znamená a co ne

dh none je skutečná direktiva s úzkým významem: žádný soubor parametrů konečného pole se nenačte, protože výměna používá Diffie-Hellman na eliptické křivce. Není to zkratka pro „přeskočit krok DH“ ve smyslu něčeho oslabit a rozhodně neříká OpenVPN, aby přijal nějaký jiný soubor jako náhradu.

Z nesprávného čtení plynou dvě chyby. První je předpokládat, že dh none odstraňuje potřebu tls-auth, zatímco obě řídí různé věci. Druhá je držet zastaralý řádek dh vedle konfigurace pouze s křivkou a pak se ptát, který soubor server vlastně používá; je-li direktiva přítomná, soubor se čte, a rozbitá cesta tam shodí start z důvodu, který s vyjednávanou výměnou nesouvisí.

Pokud byl špatný soubor už nasazen

Obnovte zamýšlené tajemství od vlastníka profilu a během toho na ověřování certifikátu nesahejte. Selhání je nesoulad formátu, ne selhání důvěry, a vypnutí ověřování, abyste chybu obešli, nahradí problém se startem tichým problémem.

Pak oddělte dva incidenty, které lidé mají tendenci slučovat. Zveřejnění souboru parametrů DH je téměř neškodné, protože parametry byly veřejné už z návrhu. Odhalení klíče tls-auth je jiná událost: klíč autentizuje pakety řídicího kanálu pro každou stranu, která ho drží, takže výměnu je třeba koordinovat v celém nasazení, ne ji provést na jednom hostiteli.

Kontrola na pět minut vyřeší, ve kterém případě jste: přečtěte první řádek každého souboru, potvrďte direktivu, která na něj odkazuje, a potvrďte, že distribuce souboru odpovídá tomu, co materiál vyžaduje. Je to menší práce než znovu vytvořit fungující PKI a přesně k tomu tři podmínky celou dobu mířily.

Související články