SSL 证书格式和证书文件扩展名:完整指南

SSL 证书是什么以及它如何工作相当容易理解。但当涉及到在服务器上安装它时,有时,你可能觉得这是在处理火箭科学。

由于有如此多的SSL 证书格式与特定服务器要求相关,您更有可能感到困惑和沮丧,而不是从一开始就正确配置证书。但这种情况即将改变。

在此综合指南中,我们将剖析每种SSL 证书格式和证书文件扩展名,并向您展示两种如何转换不同文件类型的方法。

证书文件格式 -- 基础知识

让我们从基础知识开始。所有 SSL 证书都是x.509 证书。这是用一种称为抽象语法表示法一的形式语言表达的公钥证书的标准格式。我们不会进一步深入研究 X.509 结构;我们在这里讨论 SSL 证书格式,例如 DER、PEM、PKCS#7 和 PKCS#12。

区分它们的一个简单的方法是看它们的编码。

PEM和PKCS#7使用 Base ASCII(美国信息交换标准代码)编码。这是包含文本的文件的流行标准。

DER和PKCS#12使用二进制编码,即仅由零和一组成的以 2 为基数的数字系统。

由于格式和编码不同,SSL证书有许多文件扩展名。

SSL 证书格式和文件扩展名

让我们仔细检查每种格式及其 SSL 证书文件扩展名。您将发现每个首字母缩略词背后的含义以及哪个系统最常使用它。

DER 格式

DER代表可分辨编码规则,是一种二进制编码格式,在 Windows 之外很少使用。它包含在 .der 或 .cer 文件中。

PEM 格式

PEM是最流行的 SSL 证书格式,也是您最有可能遇到的格式。大多数 CA 都提供 PEM 格式的 SSL 证书,证书文件扩展名各不相同,例如 .pem、.crt、.cer 或 .key。

PEM代表隐私增强电子邮件,您可能想知道电子​​邮件与 SSL 证书有什么关系?长话短说,PEM 未能完成其主要工作,但发现了其作为容器格式的应用。

本质上,PEM 文件是 Base64 编码的 DER 文件,其中零和一被编码为可打印字符序列。这样,您可以使用任何文本编辑器(包括记事本)打开它们。

单个 .pem 文件可以包含服务器证书、中间证书和私钥。或者,您可以在单独的 .crt 或 .cer 文件中接收服务器证书和中间证书,而私钥可能位于 .key 文件中。

PKCS#7 格式

PKCS代表公钥加密标准。

PKCS#7是一种用于分发加密数据的多用途 SSL 证书格式。它主要用于 Windows 平台和 Java Tomcat。

今天,我们实际上正在使用它的后继者 CMS(加密消息语法),但就像SSL 和 TLS一样,旧名称已经变得太熟悉而无法取代。

PKSC#7 有两个文件扩展名:.p7b 或 p7c。与 PEM 不同,PKCS#7 不能存储私钥,只能存储主要证书和中间证书。

PKCS#12 格式

PKCS#12是另一种安全性增强的公共加密标准。与 PEM 文件一样,它可以将整个 SSL 证书链和密钥对包含在单个 .pfx 文件中。主要区别在于 PCKS#12 是一个受密码保护的容器。

有些服务器系统在生成CSR时会提示您输入密码,您可以使用它来打开.pfx文件。

SSL 格式转换

现在您已经了解了 SSL 证书格式及其多个证书文件扩展名,现在是时候揭示您真正等待的内容了------如何将 SSL 证书转换为任何格式。

与大多数文件转换一样,有多种方法可以完成转换。最快的方法是使用自动SSL 转换工具。您只需选择所需的操作(例如,PEM 到 PKCS#7 的转换),上传文件,然后点击转换。

或者,您可以使用免费的 OpenSSL 软件库来转换 SSL 文件。此实用程序几乎可以在任何现有服务器上启用 SSL/TLS 协议。许多平台和 Linux 发行版都预装了 OpenSSL 实用程序。对于 Windows,您必须获取安装包。

将 X.509 转换为 PEM

要将 X.509 转换为 PEM,请在 OpenSSL 中运行以下命令:

openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem

将 DER 转换为 PEM

二进制编码为 Base64 ASCII。

要将 DER 转换为 PEM,请运行以下命令:

openssl x509 -inform der -in certificatename.der -out certificatename.pem

将 PEM 转换为 DER

Base65 ASCII 到二进制编码。

要将 PEM 转换为 DER,请运行以下命令:

openssl x509 -inform der -in certificatename.der -out certificatename.pem

将 PEM 转换为 PKCS#7

.p7b 文件不包含私钥。

要将 PEM 转换为 PKCS#7,请运行以下命令:

openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer

将 PKCS#7 转换为 PEM

要将 PKCS#7 转换为 PEM,请运行以下命令:

openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem

将 PKCS#12 转换为 PEM

PKCS#12 文件受密码保护。

要将 PKCS#12 转换为 PEM,请运行以下命令:

openssl pkcs12 -in certificatename.pfx -out certificatename.pem

将 PKCS7 转换为 PKCS12

这需要两个步骤。首先将 P7B 文件转换为 CER,然后将 CER 和私钥合并为 PFX。

openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer

openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certificatename.pfx -certfile cacert.cer

就是这样。现在您可以快速转换任何类型的 SSL 文件并将其安装到您的服务器上。

了解 SSL 证书格式、证书文件扩展名以及如何将它们转换为您想要的配置是一项宝贵的技能,它将帮助您在任何系统上无缝安装 SSL 证书。

选择正确的 SSL 格式将确保 Web 服务器、电子邮件客户端和网络上的稳定加密和安全连接。

相关推荐
星恒讯工业路由器1 天前
5G FWA技术演进与趋势
网络·5g·信息与通信·4g·5g fwa·3gpp规范·fwa趋势
凌云C1 天前
5G 协议体系与交互流程
网络协议
星夜夏空991 天前
网络编程(1)
服务器·网络
上海云盾-小余1 天前
中小站点防护避坑:低价高防服务存在的各类安全短板剖析
网络·爬虫·安全·ddos
X7x51 天前
跨厂商路由引入(重发布)实战指南:华为、华三、思科的逻辑差异与配置避坑
网络协议·信息与通信·信号处理·实施路由引入
数据知道1 天前
邮件安全实战:SPF/DKIM/DMARC 配置与钓鱼绕过
网络·安全·web安全·网络安全·邮件安全
玩转4G物联网1 天前
FS800DTU 新品上线|免费使用 DMP 设备管理平台,支持远程批量配置 & OTA 升级
物联网·网络协议·tcp/ip·云平台·核心板·fs800dtu·iot管理平台
王莎莎-MinerU1 天前
MCP 解决的是工具接入,科研 Agent 还缺的是科学证据接口标准化
开发语言·网络·人工智能·深度学习·pdf·c#·php
Chloeis Syntax1 天前
JAVAEE初阶 --- 构造HTTP请求
网络·网络协议·http·postman
砚凝霜1 天前
软考网络工程师|第 1 章 计算机网络基础 完整备考笔记
网络·笔记·计算机网络