將憑證轉換為支援的格式

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

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

Apigee Edge 僅支援在金鑰庫和信任儲存區中儲存 PEM 或 PFX 格式的憑證。 將現有格式的憑證轉換為 PEM 或 PFX 格式的步驟,取決於 OpenSSL 工具包,適用於任何可使用 OpenSSL 的環境。

事前準備

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

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

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

  1. 使用 scpsftp 或任何其他公用程式,將含有完整憑證鏈結 (certificate.der) 和相關聯私密金鑰 (private_key.der) 的檔案傳輸到已安裝 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. 使用 scpsftp 或任何其他公用程式,將包含要轉換為 PEM 格式的完整憑證鏈結 (certificate.p7b) 的檔案,傳輸至已安裝 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. 使用 scpsftp 或任何其他公用程式,將要轉換為 PEM 格式的憑證和私密金鑰 (certificate.pfxIntermediate.pfxCACert.pfxprivateKey.key) 傳輸至已安裝 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. 使用 scpsftp 或任何其他公用程式,將要轉換為 PFX 的憑證 (certificate.p7b) 轉移至已安裝 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. 在檔案所在的目錄中執行下列指令,將檔案封裝至別名為 myalias 的 PKCS12 檔案。按照系統提示輸入適當的密碼:
    openssl pkcs12 -export -in certificate.pem -inkey private.key -out keystore.pfx -name myalias