如何使用 OpenSSL 工具对证书格式进行转换

网络云上网络技术服务知识库
问题描述

我们在为负载均衡 CLB 配置 HTTPS 监听器时,需要为监听器绑定服务器证书,用于 SSL 握手协商,应用于HTTPS 单向认证场景。 负载均衡仅支持 PEM 格式的证书,因此其它格式的证书需要转换为 PEM 格式后,才能上传至负载均衡。 那么我们如何使用 OpenSSL 工具对证书进行转换?

问题分析

OpenSSL是一个开放源代码的软件库包,分为三个主要的功能部分:

  • openssl:一种命令行应用程序,用于执行各种加密任务,例如创建和处理证书及相关文件。
  • libcrypto:一个全面而广泛的加密库。
  • libssl:用于启用 SSL/TLS 通信的库,在客户端或服务器应用程序中提供 SSL 和 TLS 协议支持。

其中 openssl 命令行工具的使用场景包括:

  1. 创建和处理证书及相关文件。
  2. SSL/TLS 协议测试( openssl s_server、openssl s_client )。

如果您使用 Linux 系统,系统会自带 OpenSSL 工具,无需安装。如果您使用 Windows 系统,请获取OpenSSL软件包并安装。

解决方案

接下来,我们将展示如何使用 openssl 命令行工具对证书格式进行转换。

DER 转换为 PEM

DER 格式通常使用在Java平台中,证书文件后缀一般为 .der、.cer 或者 .crt。

  • 运行以下命令进行证书转化:
openssl x509 -inform der -in certificate.cer -out certificate.pem
  • 运行以下命令进行私钥转化:
openssl rsa -inform DER -outform PEM -in privatekey.der -out privatekey.pem

P7B 转换为 PEM

P7B 格式通常使用在 Windows Server 和 Tomcat 中。

  • 运行以下命令进行证书转化:
openssl pkcs7 -print_certs -in incertificate.p7b -out outcertificate.cer

PFX 转换为 PEM

PFX 格式通常使用在 Windows Server 中。

  • 运行以下命令提取证书:
openssl pkcs12 -in certname.pfx -nokeys -out cert.pem
  • 运行以下命令提取私钥:
openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes
参考文档

[1] https://www.openssl.org/

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论