Bevor wir über den Fehler und seine Lösung sprechen, hier ist mein OpenCA-Setup – Es ist eine Offline-Zertifizierungsstelle. d.h. RA
(Online-Registrierungsstelle, die RA &NODE umfasst) und CA
(Offline-Zertifizierungsstelle, die CA &NODE umfasst) Setup wird auf verschiedenen Computern installiert. Dies bedeutet, dass RA und CA über die Datenaustauschmethode kommunizieren, die von einer Bibliothek namens export-import.lib
durchgeführt wird . Beispielsweise können das CA-Zertifikat und seine Konfigurationen von der CA-Maschine exportiert und in die RA-Maschine importiert werden. Wenn alles gut geht, sollten die Daten problemlos zwischen CA und RA ausgetauscht werden. Aber das tat es nicht, ich bekam einen Fehler „Can’t call method get on an undefined value at export-import.lib“ während ich Daten von CA nach RA austauschte. In diesem Tutorial wird erklärt, wie man dasselbe behebt.
Unten ist der vollständige Fehler beim Ausführen von 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.
Obwohl das CA-Zertifikat unter dem Pfad:/home/openca/var/openca/crypto/cacerts/
und CRLs unter /home/openca/var/openca/crypto/crls/
korrekt importiert wurde, wurde das CA-Zertifikat nicht in die Datenbank importiert! Also habe ich zuerst vermutet, ob die CA-Maschine die Daten richtig exportiert hat (ich meine, ob das CA-Zertifikat richtig exportiert wurde?) in ca-down
tar-Datei.
ca-down ist die tar-Datei, die für den Datenaustausch zwischen RA und CA verwendet wird. Es könnte eine andere Datei in Ihrem Setup sein und dieselbe kann in node
konfiguriert werden Konfigurationsdateien.
Überprüfen Sie das CA-Zertifikat in der Tar-Datei ca-down
wie unten gezeigt:
tar -tvf /home/openca/var/openca/tmp/ca-down
Aus dem obigen Screenshot können Sie erkennen, dass das CA-Zertifikat ordnungsgemäß exportiert wurde. Aber der Import konnte das gleiche in der Datenbank nicht aktualisieren.
Nachdem ich viel Zeit damit verbracht habe, verstehe ich, dass die OpenCA zwei Verzeichnisse "upload"
verwendet &"download"
unter /home/openca/var/openca/log/
Datenaustausch verwalten. Überraschenderweise fehlten diese beiden Verzeichnisse und das war der Grund für den Fehler – Kann Methode nicht auf einen undefinierten Wert bei export-import.lib aufrufen.
Also muss ich nur upload
erstellen und download
Verzeichnisse unter log
Ordner und erteilen Sie dem Webserver die erforderlichen Berechtigungen, um darin eine Datei zu erstellen. Das ist es! Jetzt lief der Datenaustausch zwischen CA &RA reibungslos.