您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档。 信息
本文档介绍了如何将 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 格式。
-
将包含您要转换为 PEM 格式的完整证书链 (
certificate.der
) 和关联私钥 (private_key.der
) 的文件转移到安装了 OpenSSL 的机器上,包括使用scp
、sftp
或任何其他实用程序安装 OpenSSL。例如,使用
scp
命令将文件传输到包含 OpenSSL 的服务器上的/tmp
目录,如下所示:scp certificate.der servername:/tmp scp private_key.der servername:/tmp
其中,servername 是包含 OpenSSL 的服务器的名称。
- 登录安装了 OpenSSL 的机器。
-
从证书所在的目录中,运行以下命令,将证书和关联私钥从 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
- 验证证书是否已转换为 PEM 格式。
将证书从 P7B 格式转换为 PEM 格式
本部分介绍如何将证书从 P7B 格式转换为 PEM 格式。
- 将包含您要转换为 PEM 格式的完整证书链 (
certificate.p7b
) 的文件传输到使用scp
、sftp
或任何其他实用程序安装了 OpenSSL 的机器上。例如,使用
scp
命令将文件传输到包含 OpenSSL 的服务器上的/tmp
目录,如下所示:scp certificate.p7b servername:/tmp
其中,servername 是包含 OpenSSL 的服务器的名称。
- 登录安装了 OpenSSL 的机器。
-
从证书所在的目录中,运行以下命令,将证书从 P7B 格式转换为 PEM 格式:
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem
- 验证证书是否已转换为 PEM 格式。
将证书从 PFX 格式转换为 PEM 格式
本部分介绍如何将 TLS 证书从 PFX 格式转换为 PEM 格式。
在将 PFX 文件转换为 PEM 格式时,OpenSSL 会将所有证书和私钥放入单个文件中。您需要在文本编辑器中打开该文件,将每个证书和私钥(包括 BEGIN/END 语句)复制到单个文本文件中,然后分别将其另存为 certificate.pfx
、Intermediate.pfx
(如果适用)、CACert.pfx
和 privateKey.key
。
Apigee 确实支持 PFX/PKCS #12 格式;但是,PEM 格式非常方便,原因有很多,包括验证。
-
使用
scp
、sftp
或任何其他实用程序将要转换为 PEM 格式的证书和私钥(certificate.pfx
、Intermediate.pfx
、CACert.pfx
、privateKey.key
)转移到安装了 OpenSSL 的机器上。例如,使用
scp
命令将文件传输到包含 OpenSSL 的服务器上的/tmp
目录,如下所示:scp certificate.pfx servername:/tmp
其中,servername 是包含 OpenSSL 的服务器的名称。
- 登录安装了 OpenSSL 的机器。
-
从证书所在的目录中,运行以下命令,将证书从 P7B 格式转换为 PEM 格式:
openssl pkcs12 -in certificate.pfx -out certificate.pem -nodes
- 验证证书是否已转换为 PEM 格式。
将证书从 P7B 格式转换为 PFX 格式
本部分介绍如何将 TLS 证书从 P7B 格式转换为 PFX 格式。
要转换为 PFX 格式,您还需要获取私钥。
-
使用
scp
、sftp
或任何其他实用程序将要转换为 PFX 的证书 (certificate.p7b
) 转移到安装了 OpenSSL 的机器上。例如,使用
scp
命令将文件传输到包含 OpenSSL 的服务器上的/tmp
目录,如下所示:scp certificate.p7b servername:/tmp scp private_key.key servername:/tmp
其中,servername 是包含 OpenSSL 的服务器的名称。
- 登录安装了 OpenSSL 的机器。
-
从证书所在的目录中,运行以下命令以将证书从 P7B 转换为 PFX 格式,并将实体 CA 证书和中间 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 格式。
- 如需查看 PEM 格式的证书,请运行以下命令:
openssl x509 -in certificate.pem -text -noout
- 如果您能以简单易懂的格式查看证书内容,而不会出现任何错误,则表明相应证书采用的是 PEM 格式。
-
如果证书是任何其他格式,您会看到如下错误:
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