將憑證轉換為支援的格式

您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

本文將說明如何將 TLS 憑證和相關聯的私密金鑰轉換為 PEM 或 PFX (PKCS #12) 格式。

Apigee Edge 僅支援在 KeyStore 和信任存放區中儲存 PEM 或 PFX 格式的憑證。將憑證從任何現有格式轉換為 PEM 或 PFX 格式的步驟需要使用 OpenSSL 工具包,且適用於任何可使用 OpenSSL 的環境。

事前準備

使用本文件中的步驟前,請務必瞭解下列主題:

將憑證從 DER 格式轉換為 PEM 格式

本節說明如何將憑證與相關聯的私密金鑰從 DER 格式轉換為 PEM 格式。

  1. 將包含完整憑證鏈結 (certificate.der) 和相關私密金鑰 (private_key.der) 的檔案,傳輸至使用 scpsftp 或任何其他公用程式安裝 OpenSSL 的 PEM 格式。

    舉例來說,請使用 scp 指令,將檔案傳輸至含有 OpenSSL 的伺服器 /tmp 目錄,如下所示:

    scp certificate.der servername:/tmp
    scp private_key.der servername:/tmp

    其中 servername 是包含 OpenSSL 的伺服器名稱。

  2. 登入已安裝 OpenSSL 的電腦。
  3. 在憑證所在的目錄中執行下列指令,將憑證和相關私密金鑰從 DER 格式轉換為 PEM 格式:
    openssl x509 -inform DER -in certificate.der -outform PEM -out certificate.pem
    openssl rsa -inform DER -in private_key.der -outform PEM -out private.key
  4. 確認憑證已轉換為 PEM 格式

正在將憑證從 P7B 格式轉換為 PEM 格式

本節說明如何將憑證從 P7B 格式轉換為 PEM 格式。

  1. 將包含完整憑證鏈結 (certificate.p7b) 的檔案轉移至您要轉換為 PEM 格式的機器,並使用 scpsftp 或任何其他公用程式安裝 OpenSSL。

    舉例來說,使用 scp 指令在包含 OpenSSL 的伺服器中,將檔案轉移至 /tmp 目錄,如下所示:

    scp certificate.p7b servername:/tmp

    其中 servername 是包含 OpenSSL 的伺服器名稱。

  2. 登入已安裝 OpenSSL 的電腦。
  3. 在憑證所在的目錄中,執行下列指令,將憑證從 P7B 格式轉換為 PEM 格式:
    openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem
  4. 確認憑證已轉換為 PEM 格式

正在將憑證從 PFX 格式轉換為 PEM 格式

本節說明如何將 TLS 憑證從 PFX 格式轉換為 PEM 格式。

將 PFX 檔案轉換為 PEM 格式時,OpenSSL 會將所有憑證和私密金鑰放入單一檔案。您需要在文字編輯器中開啟檔案,並將每個憑證和私密金鑰 (包括 BEGIN/END 陳述式) 複製到個別文字檔案,並分別儲存為 certificate.pfxIntermediate.pfx (如適用)、CACert.pfxprivateKey.key

Apigee 支援 PFX/PKCS #12 格式,但 PEM 格式在許多方面都更為方便,包括驗證。

  1. 將您要轉換為 PEM 格式的憑證和私密金鑰 (certificate.pfxIntermediate.pfx CACert.pfxprivateKey.key),轉移至使用 scpsftp 或任何其他公用程式安裝 OpenSSL 的機器。

    舉例來說,使用 scp 指令在包含 OpenSSL 的伺服器中,將檔案轉移至 /tmp 目錄,如下所示:

    scp certificate.pfx servername:/tmp

    其中 servername 是包含 OpenSSL 的伺服器名稱。

  2. 登入已安裝 OpenSSL 的電腦。
  3. 在憑證所在的目錄中,執行下列指令,將憑證從 P7B 格式轉換為 PEM 格式:
    openssl pkcs12 -in certificate.pfx -out certificate.pem -nodes
  4. 確認憑證已轉換為 PEM 格式

正在將憑證從 P7B 格式轉換為 PFX 格式

本節說明如何將 TLS 憑證從 P7B 格式轉換為 PFX 格式。

如要轉換為 PFX 格式,您也必須取得私密金鑰。

  1. 將要轉換為 PFX 的憑證 (certificate.p7b) 轉移至使用 scpsftp 或任何其他公用程式安裝 OpenSSL 的機器。

    舉例來說,使用 scp 指令在包含 OpenSSL 的伺服器中,將檔案轉移至 /tmp 目錄,如下所示:

    scp certificate.p7b servername:/tmp
    scp private_key.key servername:/tmp

    其中 servername 是包含 OpenSSL 的伺服器名稱。

  2. 登入已安裝 OpenSSL 的電腦。
  3. 請在憑證所在的目錄中執行下列指令,將憑證從 P7B 轉換為 PFX 格式,並將實體和中繼 CA 憑證匯出至個別檔案:
    openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
    
    openssl pkcs12 -export -in certificate.cer -inkey private_key.key -out certificate.pfx -certfile CACert.cer

驗證憑證是否為 PEM 格式

本節說明如何驗證憑證是否為 PEM 格式。

  1. 如要查看 PEM 格式的憑證,請執行下列指令:
    openssl x509 -in certificate.pem -text -noout
  2. 如果您可以以人類可讀的格式查看憑證內容,且沒有任何錯誤,則可確認憑證為 PEM 格式。
  3. 如果是任何其他格式的憑證,您會看到以下錯誤訊息:
    unable to load certificate
    12626:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: TRUSTED CERTIFICATE View DER encoded Certificate

將 PEM 金鑰和憑證檔案封裝至 PKCS12/PFX

  1. 請確認私密金鑰檔案採用 PEM 格式。針對憑證,如果您有鏈結的個別 PEM 檔案,請在文字編輯器中開啟每個檔案,然後將這些檔案連接成單一檔案,如下所示:
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
  2. 使用 scpsftp 或任何其他公用程式,將檔案傳輸至已安裝 OpenSSL 的電腦:
    scp certificate.pem servername:/tmp
    scp private.key servername:/tmp
  3. 登入已安裝 OpenSSL 的裝置。
  4. 在檔案所在的目錄中執行下列指令,將檔案封裝成 PKCS12 檔案,並使用別名 myalias。按照系統提示輸入適當的密碼:
    openssl pkcs12 -export -in certificate.pem -inkey private.key -out keystore.pfx -name myalias