要使用 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 文件与博客帖子“使用 PowerShell 部署 VMware Unified Access Gateway”(Using PowerShell to Deploy VMware Unified Access Gateway)(网址为 https://communities.vmware.com/docs/DOC-30835)附带的 PowerShell 脚本结合使用来配置 Unified Access Gateway 的证书。或者,也可以创建并使用 JSON 请求来配置证书。

后续步骤

您可以使用 CA 签名的证书来更新默认的自签名证书。请参阅更新 SSL 服务器签名证书。有关智能卡证书,请参阅在 Unified Access Gateway 设备上配置证书或智能卡身份验证