SSL 证书格式转换

PEM、PFX(P12)、JKS、DER 互相转换,IIS、Tomcat、Nginx 换证书时直接用。上传文件或粘贴文本,转换结果直接下载。

转换全程在你的浏览器里完成,证书、私钥和密码不会发给 LapseZero 或任何第三方,关掉页面就不留痕迹。

在 IIS 或 Windows 中导入证书时需要输入这个密码。

常见场景:不同服务器需要什么格式

IIS / Windows:PFX

IIS 和 Windows 证书管理器导入服务器证书用的是 PFX(.pfx / .p12),证书、私钥和中间证书打包在一个带密码的文件里。手里是 PEM 证书和私钥时,「转换为」选 IIS / Windows,设置密码后下载,在 IIS 管理器的「服务器证书」中导入,再到网站的「绑定」里为 https 选择这张证书。本工具导出的 PFX 采用兼容旧版 Windows 的加密方式,Windows Server 2016 及更早的版本也能导入。

Tomcat / Java:PFX 或 JKS

Tomcat 各版本都能直接使用 PFX:「转换为」选 IIS / Windows,再在 server.xml 中设置 certificateKeystoreType="PKCS12"(Tomcat 8.5 以前写 keystoreType="PKCS12")。只有明确要求 JKS 的应用才需要选 Tomcat / Java,记下设置的密码和别名,分别填到 certificateKeystorePassword 和 certificateKeyAlias。

Nginx / Apache:PEM

Nginx 的 ssl_certificate 指向完整证书链(证书 + 中间证书),ssl_certificate_key 指向私钥。Apache 2.4.8 及以上同样把完整证书链填给 SSLCertificateFile、私钥填给 SSLCertificateKeyFile;更早的版本要把证书和中间证书链分别填给 SSLCertificateFile 和 SSLCertificateChainFile。手里只有 PFX 或 JKS 时,上传后「转换为」选 Nginx / Apache,就能下载这些文件。

四种证书格式的区别

PEM(.pem / .crt / .key)
Base64 文本,以 -----BEGIN 开头的一行起头,例如 BEGIN CERTIFICATE、BEGIN PRIVATE KEY、BEGIN RSA PRIVATE KEY,可以用文本编辑器打开。证书、私钥、中间证书可以分开存放,也可以放在同一个文件里。Nginx、Apache、大多数 Linux 软件和云平台都用这种格式。
DER(.der / .cer)
PEM 的二进制形式,PEM 就是把 DER 做 Base64 编码后加上 BEGIN / END 行。DER 无法用文本编辑器查看,一个文件只放一张证书或一个私钥,常见于 Windows 和 Java 导入单张证书的场景。注意后缀不代表格式:.cer、.crt 文件既可能是 DER 也可能是 PEM,用文本编辑器打开能看到 BEGIN 字样的就是 PEM。
PFX / PKCS#12(.pfx / .p12)
把证书、私钥和中间证书打包成一个带密码的二进制文件。IIS、Windows、Azure、Tomcat 以及其他 Java 应用都支持。
JKS(.jks)
Java 专用的密钥库格式,同样带密码保护,可以存放私钥和证书链。Java 9 起默认密钥库已改为 PKCS#12(即 PFX),新部署优先用 PFX;部分旧版 Java 应用和中间件仍要求 JKS。

常见问题

在线转换安全吗?私钥会上传吗?
不会。转换全程在你的浏览器里完成,证书、私钥和密码不会发给 LapseZero 或任何第三方,关掉页面就不留痕迹。不放心的话,可以打开浏览器的网络面板自己确认。
PFX 或 JKS 提示密码错误怎么办?
请确认输入的是导出文件时设置的密码,注意大小写和空格。导出时没有设置密码的 PFX,把密码框留空再试。从云平台下载的 PFX,密码通常在同一个压缩包的 txt 文件里。JKS 的私钥密码需要和密钥库密码相同才能转换。
提示证书和私钥不匹配是什么原因?
私钥必须是生成这张证书的 CSR 时使用的那一个。常见原因是证书续期或重新签发后还在用旧私钥,或者从多套证书里拿错了文件。找到与证书同一批生成的私钥再试。
部署后浏览器或手机提示证书不受信任怎么办?
最常见的原因是服务器只配置了证书,没有配置中间证书。电脑浏览器有时能自动补全中间证书,手机、小程序和 API 客户端往往不会,所以常出现「电脑正常、手机报错」。把证书和中间证书一起粘贴进来转换:Nginx、Apache 改用完整证书链文件,PFX 和 JKS 会自动打包中间证书。手里没有中间证书时,可以到证书服务商的下载页获取。配置后可以用SSL 证书在线检测确认证书链是否完整。
对应的 OpenSSL 命令是什么?
PEM 转 PFX:openssl pkcs12 -export -in cert.pem -inkey key.pem -certfile chain.pem -out cert.pfx PFX 转 PEM:openssl pkcs12 -in cert.pfx -nodes -out all.pem PEM 转 DER:openssl x509 -in cert.pem -outform der -out cert.der DER 转 PEM:openssl x509 -inform der -in cert.der -out cert.pem PEM 转 JKS:先按上面转成 PFX,再执行 keytool -importkeystore -srckeystore cert.pfx -srcstoretype PKCS12 -destkeystore cert.jks -deststoretype JKS OpenSSL 3 导出的 PFX 默认使用 AES 加密,Windows Server 2016 及更早的版本无法导入,需要在导出命令里加 -legacy;读取旧版 Windows 导出的 PFX 报错时,同样加 -legacy。

每次续期都要再转一遍格式?交给 LapseZero

证书到期前自动续期,并按你服务器需要的格式自动装好,不用再下载、转换、上传。免费版即可开始。

免费开始