# P7B 转 PEM 在线转换：从 PKCS #7 提取证书

> 在浏览器里把 .p7b/.p7c（PEM 或 DER）证书包转成按链排序的 PEM 证书，用于 Nginx、Apache 和云平台上传。

Source: https://ssl.sh/zh/tools/ssl-converter/p7b-to-pem/
Last updated: 2026-11-10

从 .p7b/.p7c 证书包里取出证书，按站点证书在前的顺序输出 PEM，在浏览器里完成。

P7B 转 PEM 工具从 PKCS #7 证书包里提取全部证书。粘贴 `-----BEGIN PKCS7-----` 块，或选择 `.p7b`/`.p7c` 文件（PEM、DER 都可以），点 **转换**，就能得到按链排好序的 PEM 证书，可以直接作为完整证书链使用。转换在浏览器里完成。

## 什么时候需要

- CA 或代理商发来的是 `.p7b`，常见于面向 IIS 的下载包。
- 在 Windows 里导出证书时选了“加密消息语法标准 - PKCS #7”并勾选“包括证书路径中的所有证书”。
- Java 密钥库或网络设备导出了 `.p7c` 文件。

## 步骤

1. 粘贴 PKCS #7 文本或选择文件。
2. 点 **转换**。
3. 复制 PEM 结果。如果包含根证书而你只需要服务器证书链，把根证书去掉。

## 等价的 OpenSSL 命令

```bash
openssl pkcs7 -print_certs -in certs.p7b -out certs.pem
openssl pkcs7 -inform DER -print_certs -in certs.p7b -out certs.pem   # DER 格式的文件
```

`-print_certs` 会在每张证书上方额外输出 `subject=` 和 `issuer=` 行，多数服务器会忽略，但宝塔、云控制台等面板可能因此报格式错误，所以这个工具输出的是干净的 PEM。

## 下一步

Windows 服务器可以用 [PEM 转 PFX](https://ssl.sh/zh/tools/ssl-converter/pem-to-pfx/) 把证书链和私钥打包；Nginx、Apache 可以直接用。用[证书解析工具](https://ssl.sh/zh/tools/certificate-decoder/)核对顺序。


## FAQ

**P7B 里的私钥在哪？**

没有。PKCS #7 证书包从来不含私钥，私钥在生成 CSR 的那台机器上。要做 PFX，把这里得到的 PEM 证书和那个私钥一起用。

**为什么证书顺序和文件里不一样？**

PKCS #7 里的证书是无序集合，很多文件把根证书放在最前面。服务器必须先发站点证书，所以工具会重新排序。

**根证书要保留吗？**

配置服务器时不需要，只发站点证书和中间证书。需要把根证书装进信任库时再保留。
