ssl新闻资讯

文档中心

SSL璇佷功鍒朵綔鎴怭EM鏍煎紡璇﹁В鎵嬫妸鎵嬫暀浣犲畨鍏ㄨ浆鎹紙闄勫疄渚嬶級

时间 : 2025-09-27 16:42:56浏览量 : 1

一、什么是PEM格式?为什么需要它?

2SSL璇佷功鍒朵綔鎴怭EM鏍煎紡璇﹁В鎵嬫妸鎵嬫暀浣犲畨鍏ㄨ浆鎹紙闄勫疄渚嬶級

PEM(Privacy Enhanced Mail)是SSL证书最常见的存储格式之一,文件扩展名通常是`.pem`、`.crt`或`.key`。它的特点是:

- 文本形式存储:用`--BEGIN CERTIFICATE--`和`--END CERTIFICATE--`包裹内容,可以直接用记事本打开。

- 兼容性强:被Nginx、Apache等主流服务器支持,也常用于OpenSSL命令行工具。

典型场景举例

1. 你的网站证书从CA(如Let's Encrypt)下载后是`.crt`和`.key`文件,但负载均衡器要求上传PEM格式。

2. 你需要将多个证书(域名证书+中间CA证书)合并成一个文件,PEM格式只需简单拼接即可。

二、如何将SSL证书转换成PEM格式?(附实操命令)

情况1:已有.crt/.key文件 → 直接重命名或合并

假设你的证书文件是`domain.crt`和私钥`domain.key`,它们本质上已经是PEM格式(只是扩展名不同)。可以直接:

```bash

重命名(本质不变)

cp domain.crt domain.pem

合并多个证书(例如域名证书+中间CA)

cat domain.crt intermediate.crt > fullchain.pem

```

情况2:从PFX/P12导出PEM

如果你从Windows IIS导出了`.pfx`文件(包含证书+私钥),需要用OpenSSL转换:

提取证书部分(不含私钥)

openssl pkcs12 -in cert.pfx -out cert.pem -nodes -nokeys

提取私钥部分

openssl pkcs12 -in cert.pfx -out key.pem -nodes -nocerts

注意:如果PFX有密码,需添加 `-password pass:你的密码`。

情况3:DER二进制证书 → PEM

某些设备导出的`.der`文件是二进制格式,需转换:

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

三、关键安全注意事项

1. 私钥权限必须严格限制!

私钥文件(如`.key/.pem`)若泄露等同于交出服务器控制权。务必执行:

chmod 400 key.pem

仅允许所有者读取

2. PEM文件的完整性验证

转换后记得检查内容是否完整:

查看证书有效期和颁发者

openssl x509 -in cert.pem -noout -dates -issuer

验证私钥是否匹配证书(比对MD5哈希)

openssl x509 -noout -modulus -in cert.pem | openssl md5

openssl rsa -noout -modulus -in key.pem | openssl md5

若两个哈希值相同,则匹配成功!

3. HTTPS配置常见踩坑点

- 错误1:Nginx报错 `SSL_CTX_use_PrivateKey_file("key.pem") failed` → 通常是私钥密码未移除或文件损坏。用以下命令解密私钥:

```bash

openssl rsa -in encrypted.key -out decrypted.key

```

- 错误2:浏览器提示“证书链不完整” → PEM文件中缺少中间CA证书。解决方法是按顺序拼接:域名证书→中间CA→根CA。

四、实际应用案例

案例1:为Nginx配置HTTPS

假设你已获得:

- `domain.crt`(域名证书)

- `intermediate.crt`(中间CA)

- `domain.key`(私钥)

步骤:

1. 合并证书链

```bash

cat domain.crt intermediate.crt > fullchain.pem

```

2. Nginx配置片段

```nginx

server {

listen 443 ssl;

ssl_certificate /path/to/fullchain.pem;

ssl_certificate_key /path/to/domain.key;

...

}

案例2:客户端认证双向SSL

某些场景(如银行接口)要求客户端提供PEM格式的客户端证书+私钥:

将客户端PKCS12转换为PEM套件

openssl pkcs12 -in client.p12 -out client-cert.pem -clcerts

提取公钥

openssl pkcs12 -in client.p12

TAG:ssl证书制作成pem,ssl证书转换工具,ssl证书 pem,ssl证书格式转换,ssl证书使用教程