1.简介
.pem 文件扩展名代表“Privacy Enhanced Mail”,但它被用于比电子邮件更广泛的上下文中,主要关联于加密、SSL/TLS 和证书管理。PEM 格式是一种用于存储和发送加密信息的标准,包括证书(如 SSL/TLS 服务器和客户端证书)、私钥、公钥和其他相关数据。
2.格式和内容
PEM 文件是基于 Base64 编码的文本文件,它们将二进制数据转换为可读的 ASCII 文本格式。PEM 文件还包括一个首尾明确的标记行,用以指示文件内容的类型。例如:
-----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 之间的文本表示证书。 -----BEGIN PRIVATE KEY----- 和 -----END PRIVATE KEY----- 之间的文本表示私钥。
这些标记确保内容的正确解析和使用。
3.常见用途
PEM 文件在多种情境中都非常有用,主要包括:
- SSL/TLS 证书:
- 网站和服务器用它们来验证身份并建立安全的连接。
- .pem 文件可以包含服务器证书、中间证书和根证书链。
- 公钥和私钥
- 用于各种加密操作,如 RSA、DSA 或 ECC 密钥。
- 私钥文件通常需要严格保密,而公钥可以公开。
- SSH 认证
- SSH 使用 PEM 格式的密钥进行安全的远程登录和其他认证过程。
- 编程和脚本
开发人员和系统管理员使用 PEM 文件来编程实现加密通信、数据加密和安全认证。
4.标准化
PEM(Privacy Enhanced Mail)格式最终由互联网工程任务组(IETF)在 RFC 7468 中正式规范化。
RFC 7468,标题为 “Textual Encodings of PKIX, PKCS, and CMS Structures”,于2015年发布。这份RFC明确了用于表示公共密钥基础设施(PKIX)、公钥加密标准(PKCS)和加密消息语法(CMS)结构的文本编码。
RFC 7468 规范化了 PEM 格式的细节,包括:
- 预备说明和用途
这份文档描述了用于存储和传输密钥、证书和其他加密对象的文本编码格式。
- 标准化结构
定义了一种标准方法来编码和包装这些数据结构,使其可以在不同的系统和软件之间安全地交换。
- 首尾边界行
每个PEM文件都有明确的开始和结束标记,例如 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----。这些边界行使得从文本中识别和提取编码数据成为可能。
- Base64 编码
PEM 文件使用 Base64 编码来表示原始二进制数据,这使得它们可以通过文本流(如电子邮件)安全传输。
- 处理说明
RFC 7468 还提供了关于如何处理和解析这些编码的指导,确保不同的实现可以一致地处理 PEM 数据。
5.示例
一个典型的 PEM 格式证书看起来像这样:
代码语言:javascript复制-----BEGIN CERTIFICATE-----
MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF
ADA5MQswCQYDVQQGEwJVTTEOMAwGA1UEChMFTXlTUUwxEzARBgNVBAMTCk15U1FM
...
-----END CERTIFICATE-----
参考文献
RFC 7468 Privacy-Enhanced Mail - wikipedia