Openssl

從 PEM 創建 DER 證書+密鑰

  • March 13, 2020

我不確定這是否可能。此外,OpenSSL 是一個醜陋的實用程序的母愛:/

至少根據他們的技術支持,我需要將頂級證書+私鑰作為 DER 上傳到 ESET 安全管理中心 (ESMC)。

我將 XCA 用於這個小型部署,並且沒有選項可以將 public+private 導出為 DER,只有 PEM(或其他一些格式)。那麼問題來了:如何將 PEM private+public 轉換為 DER?

PEM 和 DER 之間的區別僅在於它的儲存方式。DER 是二進制形式,PEM 是 base64 編碼文件(帶有“標題”)。由於 DER 或多或少是原始形式,因此您只能在文件中儲存一個對象。

如果您需要更多對象(例如密鑰和證書),則需要 PEM 編碼形式,其中基於“標題”可以區分對象(在文件中對象彼此跟隨)或某些特定容器格式,如 PKCS12(也支持通過openssl)。

對於 openssl,您可以使用選項informoutform指定您是否對 PEM 感興趣(如果您不請求 DER,則預設使用)或 DER。

對於密鑰(假設 rsa) - 由於 PEM 是預設的,因此以下命令是相等的:

openssl rsa -in <file_with_key> -out <new_der_key_file> -outform DER
openssl rsa -in <file_with_key> -inform PEM -out <new_der_key_file> -outform DER

對於證書 - 也是兩種相等的形式:

openssl x509 -in <cert_file> -out <new_der_cert> -outform DER
openssl x509 -in <cert_file> -inform PEM -out <new_der_cert> -outform DER

如果是 pkcs12 容器(如果支持,如果需要,將在導入期間完成轉換):

openssl pkcs12 -export -in <cert_file> -inkey <key_file> -out <pkcs12_file>.p12

引用自:https://serverfault.com/questions/1006639