CRT 转 PEM
把 .crt 或 .cer 文件转成 PEM,不管里面是 DER 二进制还是 PEM 文本,文件留在你的浏览器里。
浏览器本地运行 私钥在你的浏览器里(WebCrypto)生成和处理,不会离开你的设备,也不会上传到 ssl.sh。
CRT 转 PEM 工具把 .crt 和 .cer 文件转成 PEM。粘贴内容或选择文件,点 转换:如果是 DER 就转换,已经是 PEM 就整理干净并按证书链顺序排列。全部在浏览器里完成。
为什么 .crt 文件容易出问题
证书的扩展名只是习惯,不代表格式。CA、Windows、Java 工具都会写 .crt、.cer,有的是 PEM,有的是二进制 DER。Linux 上的服务器要的是 PEM,DER 格式的 .crt 会让 Nginx 报 PEM_read_bio_X509_AUX ... no start line 之类的错误;宝塔面板和云厂商上传证书时,也会提示证书格式不正确。
步骤
- 选择
.crt或.cer文件(或粘贴 PEM 文本)。 - 点 转换。
- 下载
.pem用于服务器配置。如果还有中间证书,放在同一个文件里站点证书的后面。
等价的 OpenSSL 命令
# 先看看是什么格式
openssl x509 -in certificate.crt -noout -subject 2>/dev/null && echo PEM || echo "不是 PEM,试试 DER"
# DER 格式的 .crt 转 PEM
openssl x509 -inform DER -in certificate.crt -out certificate.pem
想看证书里的字段,用证书解析工具打开。
常见问题
直接把 certificate.crt 改名成 certificate.pem 行不行?
只有它本来就是 PEM 文本(以 -----BEGIN CERTIFICATE----- 开头)时才行。如果是二进制 DER,改名没用,服务器照样加载失败。
Nginx 报 PEM_read_bio_X509_AUX failed 或 no start line,是这个原因吗?
经常是。Nginx 读到 DER 文件或带有多余文字的文件时就会报这个错。在这里转换 .crt,再把 ssl_certificate 指向输出的 PEM。
.crt 里有好几张证书可以吗?
PEM 格式的话可以。工具会保留全部证书,并按站点证书在前的顺序排列,这正是服务器需要的。