Antes de hablar sobre el error y su solución, aquí está mi configuración de OpenCA:es una autoridad de certificación fuera de línea. es decir, RA
(autoridad de registro en línea que incluye RA &NODE) y CA
(autoridad de certificación fuera de línea que incluye CA y NODO) la configuración se instala en diferentes máquinas. Significa que RA y CA se comunican a través del método de intercambio de datos, que se realiza mediante una biblioteca llamada export-import.lib
. Por ejemplo, el certificado de CA y sus configuraciones se pueden exportar desde la máquina de CA e importar a la máquina de RA. Si todo va bien, los datos deberían intercambiarse entre CA y RA sin ningún problema. Pero no fue así, recibí un error "No se puede llamar al método obtener un valor indefinido en export-import.lib" al intercambiar datos de CA a RA. Este tutorial explicará cómo solucionarlo.
A continuación se muestra el error completo al realizar import @ RA machine.
Error Code: 700 The compilation of the command cmdNodeDownloadCert failed. Can't call method "get" on an undefined value at /home/openra/lib/openca/functions/export-import.lib line 2225.
A través del certificado de CA en la ruta:/home/openca/var/openca/crypto/cacerts/
y CRL en /home/openca/var/openca/crypto/crls/
se importa correctamente, ¡el certificado de CA no se importó a la base de datos! Entonces, al principio sospeché si la máquina CA había exportado los datos correctamente (es decir, ¿si el certificado CA se exportó correctamente?) en ca-down
archivo tar.
ca-down es el archivo tar utilizado para el intercambio de datos entre RA y CA. Podría ser un archivo diferente en su configuración y lo mismo se puede configurar en node
archivos de configuración.
Verifique el Certificado CA en el archivo tar ca-down
como se muestra a continuación:
tar -tvf /home/openca/var/openca/tmp/ca-down
De la captura de pantalla anterior, puede comprender que el certificado de CA se ha exportado correctamente. Pero la importación no pudo actualizar lo mismo en la base de datos.
Después de pasar mucho tiempo, entiendo que OpenCA usa dos directorios "upload"
&"download"
en /home/openca/var/openca/log/
para gestionar el intercambio de datos. Sorprendentemente, faltaban esos dos directorios y ese fue el motivo del error: No se puede llamar al método obtener un valor indefinido en export-import.lib.
Así que todo lo que tengo que hacer es crear upload
y download
directorios bajo el log
carpeta y proporcione los permisos necesarios para que el servidor web cree un archivo en ella. ¡Eso es todo! Ahora el intercambio de datos entre CA y RA transcurrió sin problemas.