您正在查看 Apigee Edge 文档。
转到
Apigee X 文档。 info
本文档介绍了如何将 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 格式。
-
使用
scp、sftp或任何其他实用程序,将包含您要转换为 PEM 格式的完整证书链 (certificate.der) 和关联的私钥 (private_key.der) 的文件传输到安装了 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 格式。
- 使用
scp、sftp或任何其他实用程序,将包含您要转换为 PEM 格式的完整证书链 (certificate.p7b) 的文件传输到安装了 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.pfxCACert.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 证书导出到单独的文件中:
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
将 PEM 密钥和证书文件打包到 PKCS12/PFX 中
-
确保私钥文件为 PEM 格式。对于证书,如果您有单独的 PEM 文件用于链,请在文本编辑器中打开每个文件,并将它们串联到单个文件中,如下所示:
-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE-----
-
使用
scp、sftp或任何其他实用程序,将文件传输到安装了 OpenSSL 的机器:scp certificate.pem servername:/tmp scp private.key servername:/tmp
- 登录到安装了 OpenSSL 的机器。
-
从文件所在的目录中,运行以下命令,将文件打包到别名为 myalias 的 PKCS12 文件中。看到提示时,输入适当的密码:
openssl pkcs12 -export -in certificate.pem -inkey private.key -out keystore.pfx -name myalias