Prima di parlare dell'errore e della sua soluzione, ecco la mia configurazione OpenCA:è un'autorità di certificazione offline. cioè, RA
(autorità di registrazione online che include RA e NODE) e CA
(l'autorità di certificazione offline che include CA e NODE) è installata su macchine diverse. Significa che RA e CA comunicano tramite il metodo Data Exchange, che viene eseguito da una libreria chiamata export-import.lib
. Ad esempio, il certificato CA e le sue configurazioni possono essere esportati dalla macchina CA e importati nella macchina RA. Se tutto va bene, i dati dovrebbero essere scambiati tra CA e RA senza alcun problema. Ma non è stato così, ho ricevuto un errore "Impossibile chiamare il metodo per ottenere un valore non definito su export-import.lib" durante lo scambio di dati da CA a RA. Questo tutorial spiegherà come risolvere lo stesso.
Di seguito è riportato l'errore completo durante l'esecuzione dell'importazione @ macchina RA.
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.
Sebbene il certificato CA nel percorso:/home/openca/var/openca/crypto/cacerts/
e CRL sotto /home/openca/var/openca/crypto/crls/
è importato correttamente, il certificato CA non è stato importato nel database! Quindi, all'inizio ho sospettato che la macchina della CA avesse esportato i dati correttamente (voglio dire, se il certificato della CA fosse stato esportato correttamente?) in ca-down
tar.
ca-down è il file tar utilizzato per lo scambio di dati tra RA e CA. Potrebbe essere un file diverso nella tua configurazione e lo stesso può essere configurato in node
file di configurazione.
Verifica il certificato CA nel file tar ca-down
come mostrato di seguito:
tar -tvf /home/openca/var/openca/tmp/ca-down
Dallo screenshot sopra, puoi capire che il certificato CA è stato esportato correttamente. Ma l'importazione non è riuscita ad aggiornare lo stesso nel database.
Dopo aver speso molto tempo, capisco che OpenCA utilizza due directory "upload"
&"download"
sotto /home/openca/var/openca/log/
per gestire lo scambio di dati. Sorprendentemente mancavano queste due directory e questo era il motivo dell'errore: Impossibile chiamare il metodo per ottenere un valore non definito su export-import.lib.
Quindi tutto ciò che devo fare è creare upload
e download
directory sotto il log
cartella e fornire le autorizzazioni necessarie affinché il server Web crei un file al suo interno. Questo è tutto! Ora lo scambio di dati tra CA e RA è andato avanti senza intoppi.