已更新系列文章包括104、61850、modbus 、储能系统等,欢迎关注。

常见的公钥、私钥和证书文件格式,可以按编码方式 和文件用途两个维度来理解。
一、 两大编码格式
-
PEM格式(最常见) :文本格式,以
-----BEGIN...开头。优点 :便于阅读和传输(邮件、代码),广泛用于Apache/Nginx。它可同时包含公钥、私钥或证书,通过头尾标记区分。 -
DER格式(二进制) :二进制格式,不可直接阅读。优点:体积小、解析快,常见于Java平台。
特征对比
| 对比维度 | PEM 格式 | DER 格式 |
|---|---|---|
| 外观 | 纯文本,可读 | 二进制,显示为乱码 |
| 文件头 | -----BEGIN XXX----- |
无固定文本头 |
| 大小 | 较大(Base64编码膨胀约33%) | 较小(原始二进制) |
| 常见扩展名 | .pem , .crt, .key, .cer |
.der , .cer, .crt |
二、 各类文件扩展名与用途
-
.key/.pem(私钥):通常为PEM格式,必须妥善保管,绝不能公开。 -
.crt/.cer(证书/公钥) :仅包含公钥和身份信息,不含私钥。它可能是PEM也可能是DER格式(用文本编辑器打开看是否是乱码可区分)。 -
.csr(证书签名请求):申请证书时提交给CA机构的文件,内含公钥和申请者信息。 -
.pfx/.p12(PKCS#12,交换格式) :一个"保险箱"文件,同时包含证书和私钥,受密码保护。常用于Windows/IIS系统或导入导出证书。 -
.p7b(PKCS#7) :仅用于存放证书链或证书,不含私钥。常用于Windows或需要展示完整证书链的场景。
快速判断技巧 :大多数情况遇到
.pem,.crt,.key首选按PEM文本格式处理;如果是Java/Tomcat环境,多用DER或.pfx/.p12格式。
三、PEM 格式文件示例
特征
所有 PEM 格式文件的共同点:
-
都是纯文本,可以用记事本打开
-
都有
-----BEGIN XXX-----和-----END XXX-----作为头尾 -
中间是 Base64 编码的乱码字符(只包含
A-Z、a-z、0-9、+、/、=)
证书文件(公钥 + 身份信息)
这是最常见的 .crt 或 .pem 证书内容,包含网站域名、颁发者、有效期等。
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAKlMnZ2T3X5yMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
...(中间是证书数据)...
LmN8RqYwU=
-----END CERTIFICATE-----
私钥文件 (PKCS#1 格式,仅限RSA)
专门为 RSA 算法使用的格式,头尾明确标注了 RSA。
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAuYx+811GdZl/GZ0...(Base64数据)...
tX2jLmN8RqYwU=
-----END RSA PRIVATE KEY-----
四、如何查看 DER 格式的内容
既然不能直接打开,你需要用工具转换或查看:
方法1:转为 PEM 格式(最常用)
bash
使用 OpenSSL 将 DER 证书转为 PEM
openssl x509 -inform der -in certificate.der -out certificate.pem
将 DER 私钥转为 PEM
openssl rsa -inform der -in private.der -out private.pem
方法2:直接查看证书信息(不转换)
bash
查看 DER 证书的详细信息
openssl x509 -inform der -in certificate.der -text -noout
查看 DER 私钥信息
openssl rsa -inform der -in private.der -text -noout
方法3:Windows 下双击查看
.cer / .crt 文件在 Windows 上双击,会弹出证书可视化窗口,显示颁发者、有效期等。这个功能同时支持 PEM 和 DER 格式。
往期文章推荐: