将证书转换为受支持的格式

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

<ph type="x-smartling-placeholder">

本文档介绍了如何将 TLS 证书和关联的私钥 PEM 或 PFX (PKCS #12) 格式。

Apigee Edge 仅支持将 PEM 或 PFX 格式证书存储在密钥库和信任存储区中。 将证书从任何现有格式转换为 PEM 或 PFX 格式的步骤取决于 OpenSSL 工具包,并且适用于任何 提供 OpenSSL 环境。

准备工作

在使用本文档中的步骤之前,请确保您了解以下主题:

  • 如果您不熟悉 PEM 或 PFX 格式,请参阅 TLS/SSL 简介
  • 如果您不熟悉证书格式,请参阅 SSL 证书格式
  • 如果您对 OpenSSL 库不熟悉,请参阅 OpenSSL
  • 如果您想使用本指南中的命令行示例,请安装或更新到 OpenSSL 客户端版本。

将证书从 DER 格式转换为 PEM 格式

本部分介绍如何从 DER 转换证书和关联的私钥 转换为 PEM 格式。

  1. 转移包含完整证书链的文件 (certificate.der) 以及要转换为 PEM 格式的关联私钥 (private_key.der) 传送到使用 scpsftp 或任何命令安装 OpenSSL 的机器 其他实用程序。

    例如,使用 scp 命令将文件传输到 /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 格式。

<ph type="x-smartling-placeholder">
  1. 转移包含完整证书链的文件 (certificate.p7b) 您想将其转换为 PEM 格式,以便在使用 scp 安装 OpenSSL 的机器上进行转换; sftp 或任何其他实用程序。

    例如,使用 scp 命令将文件传输到 /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. 转移证书和私钥(certificate.pfxIntermediate.pfx CACert.pfxprivateKey.key) 您想使用 scp 将 PEM 格式转换为安装了 OpenSSL 的机器, sftp 或任何其他实用程序。

    例如,使用 scp 命令将文件传输到 /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 格式,您还需要获取私钥。

<ph type="x-smartling-placeholder">
  1. 将您要转换为 PFX 的证书 (certificate.p7b) 转移到 使用 scpsftp 或任何其他实用程序安装 OpenSSL 的机器。

    例如,使用 scp 命令将文件传输到 /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