NetWorker: Analysefehler beim Analysieren des PBE-Parameters: Erwarten der Objektkennung für die AES-Chiffre
Summary: Das selbstsignierte Zertifikat des NetWorker-Authentifizierungsservice wurde durch von einer Zertifizierungsstelle signierte Zertifikate ersetzt. Der NetWorker-Serverdienst kann nicht gestartet werden und meldet "PBE parameter parsing error: expecting the object identifier for the AES cipher" ...
Symptoms
- Das selbstsignierte Zertifikat des NetWorker-Authentifizierungsservice wurde durch von einer Zertifizierungsstelle signierte Zertifikate ersetzt.
- Die NetWorker-Serverservices können nach dem Ersetzen der Zertifikate nicht gestartet werden. Das Server-Daemon-Protokoll meldet den folgenden Fehler während des Servicestarts:
- Linux:
/nsr/logs/daemon.raw - Windows (Standardeinstellung):
C:\Program Files\EMC NetWorker\nsr\logs\daemon.raw - NetWorker: Wie benutzt man
nsr_render_logSo rendern Sie .raw Protokolldateien
- Linux:
notice authservice: Caused by: java.io.IOException: PBE parameter parsing error: expecting the object identifier for AES cipher
Cause
Der Prozess zum Ersetzen selbstsignierter Zertifikate durch CA-signierte Zertifikate erfordert die Verwendung von Java keytoolund OpenSSL, um eine Zertifikatsignieranforderung (CSR) zu erzeugen und PKCS12 (p12) Dateien.
Dieses Problem tritt aufgrund der Inkompatibilität zwischen Verschlüsselungsalgorithmen auf, die in PKCS12 Dateien und die Java keytool, um sie zu analysieren, insbesondere wenn verschiedene Versionen von OpenSSL und Java beteiligt sind.
Neuere OpenSSL-Versionen verwenden möglicherweise standardmäßig die AES-Verschlüsselung (z. B. AES-256-CBC) beim Erstellen von .p12 Dateien, Sichern von privaten Schlüsseln und Zertifikaten. Dies ist sicherer als ältere Algorithmen wie 3DES.
Ältere Java-Versionen (8u291 und früher) unterstützen keine AES-Verschlüsselung in PKCS12 Dateien. Sie erwarten, dass die Verschlüsselung ältere Algorithmen verwendet, wie z. B.:
PBEWithSHAAnd3KeyTripleDESPBEWithSHAAndRC2_40
Wenn also die Java keytool versucht, eine .p12 -Datei mit AES verschlüsselt ist, können die Parameter der kennwortbasierten Verschlüsselung (PBE) nicht analysiert werden, da der Objektbezeichner (OID) für AES nicht erkannt wird.
Dieses Problem kann auch beobachtet werden, wenn mehrere Instanzen von Java auf dem Server installiert sind. NetWorker ist beispielsweise für die Verwendung der NetWorker Runtime Environment (NRE) konfiguriert und wird auf die neueste NRE-Version aktualisiert, die von der NetWorker-Version unterstützt wird. Auf dem Server ist jedoch auch eine ältere Version von Java Runtime Environment (JRE) installiert. Wenn die keytool die ältere Version verwendet wurde, führte dies zu einem Kompatibilitätsproblem zwischen der .p12 -Dateien und die von NetWorker verwendeten Zertifikatspeicher.
Resolution
- Es wird dringend empfohlen, dass NetWorker für die Verwendung der NetWorker Laufzeitumgebung (NRE) konfiguriert wird. Stellen Sie sicher, dass NetWorker für die Verwendung von NRE konfiguriert ist und dass NRE regelmäßig auf die neueste verfügbare Version aktualisiert wird, die von der NetWorker-Version unterstützt wird:
-
- NetWorker 19.12 und früher: NRE 8.0.x
- NetWorker 19.13 und höher: NRE 17.0.x
- NetWorker-Laufzeitumgebung (NRE): Einführung und Installation
HINWEIS: Die NetWorker Virtual Edition (NVE) OsRollup und NetWorker-Upgrades werden verwendet, um das NRE-Paket zu aktualisieren. NVE ist standardmäßig für die Verwendung von NRE konfiguriert.
- Wenn Sie das Verfahren zum Ersetzen selbstsignierter NetWorker-Zertifikate befolgen, geben Sie entweder den vollständigen Pfad zum NRE-Keytool an oder verwenden Sie eine Variable, um den Pfad in der Befehlsshell festzulegen.
Linux: java_bin=/opt/nre/java/latest/bin
Windows: set java_bin="C:\Program Files\NRE\java\jre#.#.#_###\bin"
HINWEIS: Der Pfad unter Windows unterscheidet sich je nach dem vom Backupadministrator ausgewählten Installationsverzeichnis. Der Pfad enthält auch unterschiedliche JRE-Versionierungen, abhängig von der installierten NRE-Version.
Alle nachfolgenden keyool Befehle werden dann ausgeführt, indem die Variable aufgerufen wird:
Linux: $java_bin/keytool OPTIONS
Windows: %java_bin%\keytool OPTIONS
Der vollständige Prozess ist in den folgenden betriebssystemspezifischen Artikeln dokumentiert: