证书后缀
我们来详细解释一下 key
/ crt
/ pem
之间的关系:
一、三种常见文件类型的说明
文件名扩展名 | 作用 | 内容 | 是否可以互相转换 |
---|---|---|---|
.key |
私钥文件 | 通常是 RSA 或 ECC 私钥(PEM 格式) | ✅ |
.crt |
证书文件 | 公钥证书,通常是 PEM 编码的 X.509 | ✅ |
.pem |
通用容器格式(推荐) | 可以包含私钥、证书、CA链等内容 | ✅ |
二、.pem
是通用格式(包括 .key
和 .crt
)
.pem
(Privacy-Enhanced Mail)是一种 Base64 编码的 ASCII 文本格式,广泛用于存储各种加密材料。
它的内容可能是:
- 只包含私钥(相当于
.key
) - 只包含证书(相当于
.crt
) - 包含完整的证书链(即 fullchain.pem)
示例:
1. 私钥 .key
/ key.pem
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9...
-----END PRIVATE KEY-----
2. 证书 .crt
/ cert.pem
-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgIJ...
-----END CERTIFICATE-----
3. 完整链 .fullchain.pem
-----BEGIN CERTIFICATE----- # leaf cert
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- # intermediate cert
...
-----END CERTIFICATE-----
三、Nginx / Apache / Java 各如何使用
应用 | 需要什么文件 |
---|---|
Nginx | ssl_certificate 用 .crt 或 .pem ssl_certificate_key 用 .key 或 .key.pem |
Apache | 类似,支持 .pem 更推荐 |
Java keystore | 需要转换成 .p12 或 .jks |
四、转换方法
# 分离 fullchain.pem 为单独证书和中间证书
openssl x509 -in fullchain.pem -out cert.crt
# 转换 PEM -> PFX(含私钥)
openssl pkcs12 -export -out cert.pfx -inkey key.pem -in fullchain.pem
总结
.pem
是一种格式,而.key
/.crt
是常见用途的命名方式。fullchain.pem
包含了完整的证书链。- 所有这些文件 实际内容可能都是 PEM 格式,只是用途不同。
- 使用时只要指定路径正确、软件支持即可,无论扩展名叫啥。