¿Easy-RSA dice que falta la PKI? Está mirando en otro sitio
Que falte la clave de la CA o index.txt suele significar que Easy-RSA 3 eligió otro directorio. Compruebe primero el selector de PKI, la precedencia y la huella del emisor.
El comando se detiene con un ca.crt ausente o un index.txt ausente, mientras la CA lleva meses emitiendo certificados. Nada ha cambiado en la autoridad; el comando simplemente miró en otro sitio. Easy-RSA 3 resuelve un directorio PKI a partir de una opción, una variable de entorno, un archivo vars y un valor predeterminado integrado, y cualquiera de ellos puede apuntar fuera de la autoridad del despliegue. Compruebe cuál ganó antes de crear nada.
El error nombra un archivo, no un directorio
El directorio de instalación y el directorio del emisor son dos lugares distintos. Encontrar easyrsa en la máquina solo demuestra que la herramienta está instalada, no que haya encontrado la autoridad en la que confía su VPN.
Por eso reinstalar el paquete o volver a ejecutar el paso init parece productivo y no cambia nada.
Compruebe el selector antes que nada
En Easy-RSA 3 el selector es EASYRSA_PKI o la opción correspondiente --pki-dir. Pase una ruta absoluta como --pki-dir=/srv/pki/office, y la respuesta deja de depender de dónde estaba usted. Ese único hábito elimina toda una clase de este error, sobre todo en scripts ejecutados desde cron o desde un checkout de CI.
Confirme primero la generación, porque la costumbre de Easy-RSA 2 de un archivo vars más build-key es un modelo distinto del que espera Easy-RSA 3. easyrsa --version imprime la generación antes de hacer cualquier otra cosa, y ./easyrsa --help enumera los subcomandos: un objetivo build-key significa 2.x, mientras que build-client-full significa 3.x. Llevar una ruta KEY_DIR antigua a una invocación de 3.x porque el nombre del directorio resulta familiar produce exactamente este error.
Si la cadena de versión y la sintaxis del comando no concuerdan, deténgase y lea la documentación de la versión instalada.
La precedencia explica un archivo vars que perdió
La precedencia documentada es opción de línea de comandos, luego entorno, luego archivo vars, luego valor predeterminado integrado. Por tanto, un valor correcto en vars pierde frente a una variable de entorno heredada, y esa es la versión silenciosa de este fallo. Inspeccione las variables previstas y la selección de archivos en lugar de volcar todo el entorno en un ticket. La diferencia entre ambos suele ser un secreto.
Recorra la cadena en orden y anote qué fuente aportó la ruta que usó el comando. Una vez que lo sepa, la solución es un indicador o un export, no una nueva autoridad de certificación.
La referencia de configuración de Easy-RSA define el selector y la precedencia, y es la cita que hay que poner en el ticket.
Confirme el emisor con material público
Con el emisor habitual basado en archivos, lea ca.crt y compare su huella con el registro de emisor que aprobó. Un nombre de sujeto coincidente no es prueba de identidad, y un directorio llamado production tampoco. Solo la huella vincula el archivo encontrado con la autoridad en la que se dijo a sus pares que confiaran.
Basta con una comprobación de solo lectura: openssl x509 -in /srv/pki/office/ca.crt -noout -subject -issuer -serial -fingerprint -sha256.
Después establezca el papel del directorio. Un directorio de solicitudes que usa un cliente no es una base de datos de emisor, y una clave de firma guardada sin conexión no tiene nada que hacer en cada host de VPN. Un ca.key ausente es una propiedad de diseño en esa disposición, no un permiso para inventar una autoridad sustituta.
Si el estado realmente ha desaparecido
A veces la ruta es correcta y el estado genuinamente no está. Un index.txt vacío y un contador de serie reiniciado le dan una PKI que parece sana y no puede demostrar nada sobre los certificados que nunca vio: las renovaciones no revocarán los antiguos, y los números nuevos chocarán con el historial. Restaure en su lugar la copia de seguridad aprobada de la CA, porque inicializar una PKI vacía en otro sitio solo mueve el error y deja atrás una segunda autoridad no relacionada.
Cuando la ruta y el emisor coincidan, aborde el siguiente fallo por su propio mérito. Permission denied, una clave de firma que necesita su frase de contraseña y un registro de emisión ausente son tres averías distintas, y solo una tiene que ver con el directorio que acaba de corregir.
Nunca elimine el cifrado de claves ni amplíe los permisos de directorio para tapar un error de ruta. El error es barato de corregir; la reparación no.