首页 » Linux » PEM、JKS证书转换命令

PEM、JKS证书转换命令

 
在PKI(公钥基础设施)体系中,证书和密钥可以以多种格式存储,如PEM、JKS、PFX/P12等。不同的系统和应用可能要求不同的格式,因此掌握证书格式转换是运维和开发人员的必备技能。本文将详细介绍PEM、JKS之间的转换方法。

当前基于Linux系统,通过openssl和keytool工具进行转换操作,keytool命令可以通过jdk相关包组获取,如yum install openjdk-asmtools。

1、证书格式简介

格式扩展名特点适用场景
PEM.pem, .crt, .keyBase64 编码的文本格式,可存储证书、私钥或 CA 链。Nginx、Apache、Linux 环境
JKS.jksJava 密钥库格式,可存储多个证书和私钥(需密码保护)。Tomcat、Spring Boot
PFX/P12.pfx, .p12PKCS#12 格式,可存储证书、私钥和 CA 链(需密码保护)。Windows IIS、Java Keystore

注1:.pfx和.p12二者只是扩展名不同而已,内容完全一样,出于习惯来讲,Windows/IIS常用.pfx,Linux/OpenSSL常用.p12。
注2:通常情况下私钥使用.key或key.pem,证书使用.crt、.cer或cert.pem。

2、PEM转JKS

由于JKS是Java专属格式,如需要JKS格式则先将PEM转为PKCS12(P12),再转JKS

PEM先转PKCS12(P12)

注1:-passout pass:PASSWORD这里的PASSWORD是密码,如果不加此参数,则在执行命令后,需要手动输入密码。

PKCS12再转JKS

注1:-srcstorepass PASSWORD表示源密钥库(cert.p12)的密码是PASSWORD,-deststorepass PASSWORD表示目标密钥库(cert.jks)的密码是PASSWORD,目标密钥库(cert.jks)的密码可以和源密钥库(cert.p12)的相同,也可以不同。
注2:如果省略-srcstorepass PASSWORD和-deststorepass PASSWORD参数,会提示你手动输入源密钥库和目标库的密码。

3、PEM转PFX/P12

注:PFX和P12是同一格式,仅扩展名称不同而已。

4、PEM转DER

5、JKS转PEM

JKS不能直接转PEM,如需要PEM格式,则先转PKCS12,再提取证书和私钥

JKS先转PKCS12(P12)

PKCS12再转私钥(key.pem)

注:-nodes参数表示私钥不加密(否则 Nginx 无法直接使用)。

PKCS12再转证书(cert.pem)

6、JKS转PFX/P12

 

原文链接:PEM、JKS证书转换命令,转载请注明来源!

0