Il comando si ferma con un ca.crt mancante o un index.txt mancante, mentre la CA emette certificati da mesi. Nulla è cambiato nell'autorità; il comando ha semplicemente guardato altrove. Easy-RSA 3 ricava una directory PKI da un'opzione, una variabile d'ambiente, un file vars e un valore predefinito integrato, e ognuna di queste può puntare lontano dall'autorità della distribuzione. Controllate quale ha vinto prima di creare qualsiasi cosa.

L'errore nomina un file, non una directory

La directory di installazione e la directory dell'emittente sono due luoghi diversi. Trovare easyrsa sulla macchina dimostra solo che lo strumento è installato, non che abbia trovato l'autorità di cui si fida la vostra VPN.

Per questo reinstallare il pacchetto o rieseguire il passo init sembra produttivo e non cambia nulla.

Controllate il selettore prima di ogni altra cosa

In Easy-RSA 3 il selettore è EASYRSA_PKI o l'opzione corrispondente --pki-dir. Indicate un percorso assoluto come --pki-dir=/srv/pki/office, e la risposta smette di dipendere da dove vi trovavate. Questa sola abitudine elimina un'intera classe di questo bug, soprattutto per gli script eseguiti da cron o da un checkout CI.

Confermate prima la generazione, perché l'abitudine di Easy-RSA 2 con un file vars più build-key è un modello diverso da quello che Easy-RSA 3 si aspetta. easyrsa --version stampa la generazione prima di fare qualsiasi altra cosa, e ./easyrsa --help elenca i sottocomandi: un obiettivo build-key significa 2.x, mentre build-client-full significa 3.x. Portare un vecchio percorso KEY_DIR in una chiamata 3.x perché il nome della directory sembra familiare produce esattamente questo errore.

Se la stringa di versione e la sintassi del comando non concordano, fermatevi e leggete la documentazione della release installata.

La precedenza spiega un file vars che ha perso

La precedenza documentata è opzione della riga di comando, poi ambiente, poi file vars, poi valore predefinito integrato. Un valore corretto in vars perde quindi contro una variabile d'ambiente ereditata, e questa è la versione silenziosa di questo guasto. Ispezionate le variabili previste e la selezione dei file invece di riversare tutto l'ambiente in un ticket. La differenza tra i due di solito è un segreto.

Percorrete la catena in ordine e annotate quale fonte ha fornito il percorso usato dal comando. Una volta che lo sapete, la correzione è un flag o un export, non una nuova autorità di certificazione.

La guida alla configurazione di Easy-RSA definisce il selettore e la precedenza, ed è la citazione da mettere nel ticket.

Confermate l'emittente con materiale pubblico

Con l'emittente abituale basato su file, leggete ca.crt e confrontate la sua impronta con il record dell'emittente che avete approvato. Un nome soggetto corrispondente non è prova d'identità, e nemmeno una directory chiamata production. Solo l'impronta lega il file trovato all'autorità a cui è stato detto ai vostri pari di fidarsi.

Basta un controllo in sola lettura: openssl x509 -in /srv/pki/office/ca.crt -noout -subject -issuer -serial -fingerprint -sha256.

Stabilite poi il ruolo della directory. Una directory di richieste usata da un client non è un database dell'emittente, e una chiave di firma tenuta offline non ha niente a che fare su ogni host VPN. Una ca.key mancante è una proprietà di progettazione in quella disposizione, non un permesso di inventare un'autorità sostitutiva.

Se lo stato è davvero sparito

A volte il percorso è corretto e lo stato davvero non c'è. Un index.txt vuoto e un contatore di serie riavviato vi danno una PKI che sembra sana e non può provare nulla sui certificati che non ha mai visto: i rinnovi non revocheranno i vecchi, e i nuovi numeri entreranno in collisione con la cronologia. Ripristinate invece dal backup approvato della CA, perché inizializzare una PKI vuota altrove sposta soltanto l'errore e lascia dietro una seconda autorità non correlata.

Quando il percorso e l'emittente concordano, affrontate il guasto successivo nel merito. Permission denied, una chiave di firma che richiede la sua passphrase e un record di emissione mancante sono tre guasti diversi, e solo uno riguarda la directory che avete appena corretto.

Non rimuovete mai la cifratura delle chiavi e non allargate i permessi della directory per mascherare un errore di percorso. L'errore costa poco da correggere; la riparazione no.

Articoli correlati