1️⃣ PEM 格式详细介绍
PEM(Privacy-Enhanced Mail)是一种存储和传输密钥、证书的文本格式。它将二进制数据(DER 格式)进行 Base64 编码,并在首尾添加类似 -----BEGIN <标签>----- 和 -----END <标签>----- 的页眉页脚。常见标签有:PUBLIC KEY、PRIVATE KEY、CERTIFICATE 等。这种格式易于在文本环境中复制、粘贴和传输,是目前最通用的密钥交换格式。
2️⃣ 除了 PEM 还可以是哪些格式?
- DER:纯二进制格式,直接存储 ASN.1 结构,无法直接阅读,常见于 Java 平台。
- HEX:将 DER 二进制表示为十六进制字符串,便于调试或嵌入代码。
- Base64(无页眉):仅对 DER 进行 Base64 编码,不带 PEM 页眉,用于某些配置或紧凑表示(如 JWT)。
- PKCS#12 (PFX):一种包含公钥和私钥的二进制容器格式,通常带有密码保护,用于浏览器或 Windows 系统。
3️⃣ 什么时候用哪种格式?
- PEM:最通用,适用于 OpenSSL、Web 服务器(Nginx/Apache)、API 交换等场景。
- DER:常用于 Java 环境或需要严格二进制存储的场合。
- HEX:在调试、嵌入式系统或需要精确查看字节内容时使用。
- Base64(无页眉):当格式受限或需要紧凑表示时(如 JSON Web Token 的一部分)。
- PKCS#12:需要同时传输公钥和私钥并保护私钥时(通常带密码)。