NetWorker:PBE 參數剖析錯誤:需要 AES 加密的物件識別碼
Summary: NetWorker 驗證服務自我簽署憑證已替換為 CA 簽署憑證。NetWorker 伺服器服務無法啟動,並報告「PBE 參數剖析錯誤:預期 AES 加密的物件識別碼」
Symptoms
- NetWorker 驗證服務自我簽署憑證已替換為 CA 簽署憑證。
- 更換憑證後,NetWorker 伺服器服務無法啟動。伺服器精靈紀錄在服務啟動期間報告以下錯誤:
- Linux:
/nsr/logs/daemon.raw - Windows (預設):
C:\Program Files\EMC NetWorker\nsr\logs\daemon.raw - NetWorker:如何使用
nsr_render_log呈現.raw紀錄檔
- Linux:
notice authservice: Caused by: java.io.IOException: PBE parameter parsing error: expecting the object identifier for AES cipher
Cause
將自我簽署憑證取代為 CA 簽署憑證的程序要求使用 Java keytool和 OpenSSL產生憑證簽署要求 (CSR) 並建立 PKCS12 (p12) 檔。
由於 PKCS12 檔案與 Java keytool解析它們的能力,特別是當涉及不同版本的OpenSSL和Java時。
較新的 OpenSSL 版本可能預設為 AES 加密 (例如, AES-256-CBC) 建立時 .p12 檔,保護私鑰和證書。這比 3DES 等舊演演演算法更安全。
舊版本的 Java(8u291 及更早版本)不支援 AES 加密 PKCS12 檔。他們希望加密使用較舊的演演演算法,例如:
PBEWithSHAAnd3KeyTripleDESPBEWithSHAAndRC2_40
所以當Java keytool 嘗試匯入 .p12 使用 AES 加密的檔,它無法解析基於密碼的加密 (PBE) 參數,因為它無法識別 AES 的物件識別碼 (OID)。
如果伺服器上安裝了多個 Java 實例,也會出現此問題。例如,NetWorker 設定為使用 NetWorker 執行時間環境 (NRE),並更新為 NetWorker 版本支援的最新 NRE 版本;但是,伺服器還安裝了舊版本的 Java 運行時環境 (JRE)。當 keytool 使用命令時使用了舊版,這會導致 .p12 NetWorker 使用的檔案和憑證存放區。
Resolution
- 強烈建議設定 NetWorker 以使用 NetWorker 執行階段環境 (NRE)。請確定 NetWorker 已設定為使用 NRE,且 NRE 會定期更新至 NetWorker 版本支援的最新版本:
-
- NetWorker 19.12 及更早版本:NRE 8.0.x
- NetWorker 19.13 及更新版本:NRE 17.0.x
- NetWorker 執行時間環境 (NRE):簡介與安裝
注意:NetWorker Virtual Edition (NVE) 作業系統匯總和 NetWorker 升級可用來升級 NRE 套裝。NVE 預設設定為使用 NRE。
- 依照更換 NetWorker 自我簽署憑證的程序操作時,請指定 NRE keytool 的完整路徑,或使用變數在命令 shell 中設定路徑。
Linux: java_bin=/opt/nre/java/latest/bin
Windows: set java_bin="C:\Program Files\NRE\java\jre#.#.#_###\bin"
注意:Windows 上的路徑會因備份系統管理員選擇的安裝位置而有所不同。該路徑還包括不同的 JRE 版本控制,具體取決於安裝的 NRE 版本。
所有後續操作 keyool 然後透過呼叫變數來執行命令:
Linux: $java_bin/keytool OPTIONS
Windows: %java_bin%\keytool OPTIONS
下列作業系統專屬文章會說明完整的程序: