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.