PFX 转 PEM
把 .pfx/.p12 拆成 PEM:站点证书、中间证书链、完整证书链和私钥,可直接用于 Nginx 和宝塔。
浏览器本地运行 私钥在你的浏览器里(WebCrypto)生成和处理,不会离开你的设备,也不会上传到 ssl.sh。
PFX 转 PEM 工具把 PFX/P12 文件拆成 PEM 文件。选择 .pfx 或 .p12 文件,输入密码,点 转换,就能得到 Nginx、Apache 用的 fullchain.pem、单独的站点证书和证书链文件,以及私钥。解密全部在浏览器里完成。
什么时候需要
- 证书从 Windows/IIS 迁移到 Linux(Nginx、Apache、HAProxy)。
- 阿里云、腾讯云下载的 IIS 或 Tomcat 格式证书包是 PFX(附一个密码 txt),但你的服务器要 PEM。
- 宝塔面板要粘贴“密钥(KEY)”和“证书(PEM格式)”:分别填这里输出的私钥和
fullchain.pem。 - CDN、负载均衡上传证书要求分别填写证书内容和私钥(PEM)。
步骤
- 选择 PFX 文件。
- 输入密码(云厂商下载包里的
pfx-password.txt、keystorePass.txt之类的文件里就是密码;导出时没设密码就留空)。 - 点 转换,下载需要的文件:
-
fullchain.pem:站点证书 + 中间证书,用于 Nginx 的ssl_certificate、Apache 2.4.8+ 的SSLCertificateFile、宝塔的“证书(PEM格式)”; -cert.pem和chain.pem:给要求分开存放的软件; -privkey.pem:PKCS #8 格式的私钥。
等价的 OpenSSL 命令
openssl pkcs12 -in example.pfx -clcerts -nokeys -out cert.pem
openssl pkcs12 -in example.pfx -cacerts -nokeys -out chain.pem
openssl pkcs12 -in example.pfx -nocerts -nodes -out privkey.pem
# OpenSSL 3 读取旧版 RC2 加密的 PFX:每条命令加 -legacy
常见错误
- 密码错误:MAC 校验没通过。PFX 密码区分大小写,有些工具导出的 PFX 密码为空。
- 包含根证书:根证书不会放进
chain.pem,服务器不需要发送根证书。 - 一个文件里有多个私钥:会分别提供,用私钥匹配工具看哪个和证书是一对。
常见问题
OpenSSL 3 报 unsupported,怎么办?
这个 PFX 用的是 RC2-40 加密,OpenSSL 3 只在 legacy provider 里提供。命令里加 -legacy,或者直接用这个工具,它能读 RC2 和 3DES 加密的文件。
导出的私钥是加密的吗?
不是。Nginx 等 Web 服务器需要不加密的私钥文件。请用 chmod 600 限制权限,用完删除临时副本。
PFX 里没有证书链怎么办?
有些导出只包含站点证书。从 CA 下载中间证书,或者用证书链补全工具从线上服务器获取完整证书链。