若要使用 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 要求來設定憑證。

下一步

如果您轉換的是 TLS/SSL 伺服器憑證,請參閱更換 Unified Access Gateway 的預設 TLS/SSL 伺服器憑證。若是智慧卡憑證,請參閱在 Unified Access Gateway 應用裝置上設定憑證或智慧卡驗證