若要使用 Unified Access Gateway REST API 進行憑證設定或要使用 PowerShell 指令碼,您必須將憑證轉換為 PEM 格式檔案以取得憑證鏈結和私密金鑰,接著必須將 .pem 檔案轉換為包含內嵌換行字元的單行格式。

設定 Unified Access Gateway 時,可能有三種憑證類型需要加以轉換。

  • 請一律為 Unified Access Gateway 應用裝置安裝並設定 TLS/SSL 伺服器憑證。

  • 如果計劃使用智慧卡驗證,您必須針對將要放在智慧卡上的憑證,安裝並設定信任的 CA 簽發者憑證。

  • 如果計劃使用智慧卡驗證,VMware 建議您為 Unified Access Gateway 應用裝置上所安裝的 SAML 伺服器憑證,安裝並設定簽署 CA 的根憑證。

對於這三種憑證類型,執行相同程序以將憑證轉換為包含憑證鏈結的 PEM 格式檔案。對於 TLS/SSL 伺服器憑證和根憑證,另請將每個檔案轉換為包含私密金鑰的 PEM 檔案。接著必須將每個 .pem 檔案轉換為可將 JSON 字串傳遞至 Unified Access Gateway REST API 的單行格式。

先決條件

  • 確認您擁有憑證檔案。檔案可能是 PKCS#12 (.p12.pfx) 格式,也可能是 Java JKS 或 JCEKS 格式。

  • 自行熟悉您將用來轉換憑證的 openssl 命令列工具。請參閱https://www.openssl.org/docs/apps/openssl.html

  • 如果憑證是 Java JKS 或 JCEKS 格式,請自行熟悉 Java keytool 命令列工具,以先將憑證轉換為 .p12.pks 格式,之後才能再轉換為 .pem 檔案。

程序

  1. 如果憑證是 Java JKS 或 JCEKS 格式,請使用 keytool 將憑證轉換為 .p12.pks 格式。
    重要:

    在此轉換期間,請使用相同的來源和目的地密碼。

  2. 如果憑證是 PKCS#12 (.p12.pfx) 格式,或已將憑證轉換為 PKCS#12 格式後,請使用 openssl 將憑證轉換為 .pem 檔案。

    例如,如果憑證的名稱是 mycaservercert.pfx,請使用下列命令轉換憑證:

    openssl pkcs12 -in mycaservercert.pfx -nokeys -out mycaservercert.pem
    openssl pkcs12 -in mycaservercert.pfx -nodes -nocerts -out mycaservercertkey.pem
    openssl rsa -in mycaservercertkey.pem -check -out mycaservercertkeyrsa.pem
  3. 編輯 mycaservercert.pem,然後移除任何不需要的憑證項目。檔案中應該會包含一個 SSL 伺服器憑證,後面則有任何必要的中繼 CA 憑證和根 CA 憑證。
  4. 使用下列 UNIX 命令,將每個 .pem 檔案轉換為可將 JSON 字串傳遞至 Unified Access Gateway REST API 的值。
    awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' cert-name.pem

    在此範例中,cert-name.pem 是憑證檔案的名稱。憑證看起來類似此範例。

    圖 1. 位於單行的憑證檔案

    新格式會將所有憑證資訊放在具有內嵌換行字元的單行中。如果您具有中繼憑證,該憑證也必須使用單行格式,並新增至第一個憑證,讓這兩個憑證位於同一行上。

結果

現在,您可以使用這些 .pem 檔案並搭配 https://communities.vmware.com/docs/DOC-30835 上的部落格文章〈Using PowerShell to Deploy VMware Unified Access Gateway〉(使用 PowerShell 部署 VMware Unified Access Gateway) 內附的 PowerShell 指令碼,來設定 Unified Access Gateway 的憑證。或者,您也可以建立並使用 JSON 要求來設定憑證。

下一步

您可以使用 CA 簽署的憑證更新預設的自我簽署憑證。請參閱更新 SSL 伺服器簽署的憑證。若是智慧卡憑證,請參閱在 Unified Access Gateway 應用裝置上設定憑證或智慧卡驗證