CRT、CER、PEM、DER编码、JKS、KeyStore等格式证书说明及转换

文章参考及借鉴学习:

  1. https://blog.csdn.net/xiangguiwang/article/details/76400805
  2. https://blog.csdn.net/carcoon/article/details/106133668
  3. https://blog.csdn.net/qq_18105691/article/details/83339101

 

DER、CRT、CER、PEM格式证书

1).DER 扩展名

.DER = DER扩展用于二进制DER编码证书。

这些文件也可能承载CER或CRT扩展。 正确的说法是“我有一个DER编码的证书”不是“我有一个DER证书”。

2).PEM 扩展名

.PEM = PEM扩展用于不同类型的X.509v3文件,是以“ - BEGIN ...”前缀的ASCII(Base64)数据。

3)常见的扩展

3.1).CRT 扩展名

.CRT = CRT扩展用于证书。 证书可以被编码为二进制DER或ASCII PEM。 CER和CRT扩展几乎是同义词。 最常见的于Unix 或类Unix系统。

3.2).CER扩展名

 CER = .crt的替代形式(Microsoft Convention)您可以在微软系统环境下将.crt转换为.cer(.both DER编码的.cer,或base64 [PEM]编码的.cer)。

可参考:https://support.comodo.com/index.php?/Knowledgebase/Article/View/361/17/how-do-i-convert-crt-file-into-the-microsoft-cer-format

.cer文件扩展名也被IE识别为 一个运行MS cryptoAPI命令的命令(特别是rundll32.exe cryptext.dll,CryptExtOpenCER),该命令显示用于导入和/或查看证书内容的对话框。 

3.3).KEY 扩展名

     .KEY = KEY扩展名用于公钥和私钥PKCS#8。 键可以被编码为二进制DER或ASCII PEM。

常见的OpenSSL证书操作

证书操作有四种基本类型。查看,转换,组合和提取。

1)查看证书

 即使PEM编码的证书是ASCII,它们是不可读的。这里有一些命令可以让你以可读的形式输出证书的内容;

 1.1)查看PEM编码证书

openssl x509 -in cert.pem -text -noout

openssl x509 -in cert.cer -text -noout

openssl x509 -in cert.crt -text -noout

 如果您遇到这个错误,这意味着您正在尝试查看DER编码的证书,并需要使用“查看DER编码证书”中的命令。
unable to load certificate

12626:error:0906D06C:PEMroutines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: TRUSTEDCERTIFICATE

1.2)查看DER编码证书

openssl x509 -in certificate.der -inform der -text -noout

如果您遇到以下错误,则表示您尝试使用DER编码证书的命令查看PEM编码证书。在“查看PEM编码的证书”中使用命令
unable to load certificate

13978:error:0D0680A8:asn1 encodingroutines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1306:

13978:error:0D07803A:asn1 encodingroutines:ASN1_ITEM_EX_D2I:nested asn1 error:tasn_dec.c:380:Type=X509

2)转换证书格式

转换可以将一种类型的编码证书存入另一种。(即PEM到DER转换)
PEM到DER
openssl x509 -in cert.crt -outform der-out cert.der
DER到PEM
openssl x509 -in cert.crt -inform der -outform pem -out cert.pem

3)组合证书

在某些情况下,将多个X.509基础设施组合到单个文件中是有利的。一个常见的例子是将私钥和公钥两者结合到相同的证书中。

组合密钥和链的最简单的方法是将每个文件转换为PEM编码的证书,然后将每个文件的内容简单地复制到一个新文件中。这适用于组合文件以在Apache中使用的应用程序。

4)证书提取

一些证书将以组合形式出现。 一个文件可以包含以下任何一个:证书,私钥,公钥,签名证书,证书颁发机构(CA)和/或权限链。

原文链接

https://support.ssl.com/index.php?/Knowledgebase/Article/View/19/0/der-vs-crt-vs-cer-vs-pem-certificates-and-how-to-convert-them

 

 

关于PEM -> DER -> JKS的转换

 

pem文件 转换为 der文件

openssl x509 -outform der -in cert.pem -out cert.der

der文件 转换为 jks文件

keytool -import -keystore cert.jks -file cert.der

以上命令需要输入2次密码。需要记住。java加载jks是需要。
当然还可以给证书使用别名

keytool -import -alias youralias -keystore cert.jks -file cert.der

若要转换成带别名密码的jks文件,还可以将别名密码通过以下方式附带上

keytool -import -alias youralias -keystore output.jks -file cert.der -keypass youraliaspass

若需要修改jks文件的别名及别名密码,可以使用以下,需要确认证书密码及旧别名密码

keytool -changealias -keystore yourjks.jks -alias oldalias -destalias newalias

最后,附上校验jks证书密钥的方法

keytool -list -v -keystore yourjks.jks

 

暂时就写到这里,后续有进步再补充吧~

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值