Příkaz se zastaví kvůli chybějícímu ca.crt nebo chybějícímu index.txt, ačkoli CA vydává certifikáty už měsíce. Na autoritě se nic nezměnilo; příkaz se prostě podíval jinam. Easy-RSA 3 určuje adresář PKI z volby, proměnné prostředí, souboru vars a vestavěné výchozí hodnoty a kterákoli z nich může ukazovat mimo autoritu nasazení. Než cokoli vytvoříte, zkontrolujte, která zvítězila.

Chyba pojmenovává soubor, ne adresář

Instalační adresář a adresář vydavatele jsou dvě různá místa. Nalézt easyrsa na stroji dokazuje jen to, že je nástroj nainstalovaný, ne že našel autoritu, které váš VPN důvěřuje.

Proto přeinstalace balíčku nebo opětovné spuštění kroku init působí produktivně a nic nemění.

Nejprve zkontrolujte selektor

V Easy-RSA 3 je selektorem EASYRSA_PKI nebo odpovídající volba --pki-dir. Zadejte absolutní cestu, například --pki-dir=/srv/pki/office, a odpověď přestane záviset na tom, kde jste náhodou stáli. Tento jeden návyk odstraní celou třídu této chyby, zejména u skriptů spouštěných z cronu nebo z checkoutu CI.

Nejprve potvrďte generaci, protože návyk Easy-RSA 2 se souborem vars plus build-key je jiný model, než jaký Easy-RSA 3 očekává. easyrsa --version vypíše generaci dřív, než udělá cokoli jiného, a ./easyrsa --help vypíše podpříkazy: cíl build-key znamená 2.x, zatímco build-client-full znamená 3.x. Přenášení staré KEY_DIR cesty do volání 3.x proto, že název adresáře vypadá povědomě, vyvolá přesně tuto chybu.

Pokud se řetězec verze a syntaxe příkazu neshodují, zastavte se a přečtěte si dokumentaci nainstalovaného vydání.

Priorita vysvětluje prohraný soubor vars

Dokumentovaná priorita je volba příkazového řádku, pak prostředí, pak soubor vars, pak vestavěná výchozí hodnota. Správná hodnota v vars proto prohrává se zděděnou proměnnou prostředí, a to je tichá verze tohoto selhání. Prozkoumejte zamýšlené proměnné a výběr souboru, místo abyste celé prostředí vysypali do tiketu. Rozdíl mezi oběma je obvykle tajemství.

Projděte řetězec v pořadí a poznamenejte, který zdroj dodal cestu, kterou příkaz použil. Jakmile to víte, oprava je přepínač nebo export, ne nová certifikační autorita.

Referenční příručka konfigurace Easy-RSA definuje selektor a prioritu a je to citace, která patří do tiketu.

Potvrďte vydavatele veřejným materiálem

U obvyklého souborového vydavatele přečtěte ca.crt a porovnejte jeho otisk se záznamem vydavatele, který jste schválili. Shodný název subjektu není důkazem identity, a adresář s názvem production také ne. Jen otisk spojuje nalezený soubor s autoritou, které měli vaši partneři důvěřovat.

Stačí kontrola pouze pro čtení: openssl x509 -in /srv/pki/office/ca.crt -noout -subject -issuer -serial -fingerprint -sha256.

Pak určete roli adresáře. Adresář žádostí, který klient používá, není databází vydavatele, a podepisovací klíč uchovávaný offline nemá na každém hostiteli VPN co dělat. Chybějící ca.key je v tomto uspořádání vlastností návrhu, ne povolením vymyslet náhradní autoritu.

Pokud stav opravdu zmizel

Někdy je cesta správná a stav skutečně chybí. Prázdný index.txt a restartovaný sériový čítač vám dají PKI, která vypadá zdravě a nemůže nic dokázat o certifikátech, které nikdy neviděla: obnovy neodvolají staré a nová čísla se střetnou s historií. Obnovte místo toho ze schválené zálohy CA, protože inicializace prázdné PKI jinde jen přesouvá chybu a zanechává druhou, nesouvisející autoritu.

Jakmile se cesta a vydavatel shodují, řešte další selhání podle jeho podstaty. Permission denied, podepisovací klíč, který potřebuje svou přístupovou frázi, a chybějící záznam o vydání jsou tři různé závady a jen jedna z nich se týká adresáře, který jste právě opravili.

Nikdy neodstraňujte šifrování klíčů ani nerozšiřujte oprávnění adresářů, abyste zakryli chybu cesty. Chyba se dá levně opravit; oprava ne.

Související články