手机扫一扫访问本页内容

微信扫描点右上角"···"分享到好友或朋友圈

关闭
微信扫一扫可打开小程序

微信长按图片或搜“分享录”可打开小程序

关闭
Java,技术,经验 , , , ,

jks、p12(PKCS12)等KeyStore密钥库的互相转换

KeyStore即密钥库,是用于存储加密密钥和证书的存储工具,Java中有jceks、jks、dks、pkcs11、pkcs12这几种类型的KeyStore。

JCEKS即Java Cryptography Extension KeyStore,是Java平台的一种密钥库格式。 在KeyStore中存储密钥是一种防止加密密钥泄漏的措施。Java KeyStore安全地包含可由别名引用的证书和密钥,以便在Java程序中使用。

JKS即Java Keystore,一种专为Java设计的专有密钥库类型。可以用于存储SSL通信的私钥和证书,但是它不能存储密钥。JDK附带的keytool无法提取存储在JKS上的私钥。这种类型的密钥库通常具有jks的扩展名。

DKS即Domain Keystore,一个域密钥库。它是作为单个逻辑密钥库呈现的密钥库集合。域密钥库由配置数据指定,其语法在DomainLoadStoreParameter中进行了描述。

PKCS11即PKCS#11是公钥加密标准(PKCS, Public-Key Cryptography Standards)中的一份子 ,由RSA实验室(RSA Laboratories)发布,它为加密令牌定义了一组平台无关的API ,如硬件安全模块和智能卡。 Java提供了一个接口,用于连接硬件密钥库设备,如智能卡。 可以参考sun.security.pkcs11.P11KeyStore类。 此密钥库可以存储私钥,密钥和证书。 加载密钥库时,将从密钥库中检索条目,然后将其转换为软件成勋可识别的条目。

PKCS12即PKCS#12是一种交换数字证书的加密标准,用来描述个人身份信息,如:用户公钥、私钥、证书等。可将加密对象,如密钥、私钥、证书等存储为单个文件。它是RSA实验室发布的标准化格式,它不仅可以用于Java,还可以用于C、C++、C#等其他库。该文件格式经常用于从其他密钥库类型导入和导出条目。
可以通过JDK自带的keytool、jarsigner和policytool工具来生成KeyStore,这里用keytool。

Keytool是一个密钥和证书管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中。 在keystore里,包含两种数据:
密钥实体(Key entity,包含密钥(secret key)又或者是私钥和配对公钥(采用非对称加密))和可信任的证书实体(trusted certificate entries,只包含公钥)。
搭好环境可以通过“keytool”查看Keytool使用命令,在《用James(包括解压和docker两个版本)搭建企业邮件服务器》中我讲过在Windows、macOS、Linux和docker中生成keystore以及相关转换,下面简单介绍一些常用的转换。

jks转PKCS12,可以到各平台申请免费的SSL证书Tomcat版的就有jks。

先生成.p12文件:keytool -importkeystore -srckeystore xubingtao.cn.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore ./xubingtao.cn.p12
用p12生成keystore:keytool -v -importkeystore -srckeystore xubingtao.cn.p12 -srcstoretype PKCS12 -destkeystore ./xubingtao_cn.keystore -deststoretype JKS
转成PKCS12:keytool -importkeystore -srckeystore ./xubingtao_cn.keystore -destkeystore ./xubingtao_cn.keystore -deststoretype pkcs12

用keystore转jks。

先生成.p12文件:keytool -importkeystore -srckeystore xubingtao_cn.keystore -srcstoretype JKS -deststoretype PKCS12 -destkeystore xubingtao_cn.p12
用p12生成jks:keytool -v -importkeystore -srckeystore xubingtao_cn.p12 -srcstoretype PKCS12 -destkeystore xubingtao_cn.jks -deststoretype JKS

从jks里面导出cert。

keytool -export -alias cert0001 -keystore xubingtao_cn.jks -storepass 密钥库口令 -file xubingtao_cn.cer

将cert导入jks。

keytool -import -v -alias cert001 -file xubingtao_cn.cer -keystore xubingtao_cn.jks -storepass 密钥库口令 -noprompt

更多相关信息请访问官网Java Cryptography Architecture (JCA) Reference Guide


展开阅读全文


上一篇:

下一篇:

服务器又要到期了鼓励一下吧
您还可以访问本站的小程序、公众号等所有端,或者下载APP, 在小程序、APP上可以评论文章以及保存图片还有在线客服哦,如您有任何疑问或建议可向作者提出意见反馈
扫码打开小程序可评论文章保存图片,在“我的”有实时在线客服哦,看效果?
关注我的公众号为您分享各类有用信息
分享录多端跨平台系统