如何从JKS文件中取出PEM格式证书

两个概念:

truststore:一般用来存储CA证书,所以它没有私钥。

所有从truststore一般只能提取出CA根证书。

keystore:存储普通证书可以私钥。

所有从keystore里面一般能提取出用户证书和用户私钥。

从JKS中提取PEM证书

$ keytool -export -rfc -alias -file -keystore -storepass

alias是定义在keystore里面的entry,可以使用如下命令,查看当前包含哪几个entry:

$ keytool --list -keystore -storepass

例如:

$ keytool --list -keystore server.keystore.jks -storepass

Keystore type: jks

Keystore provider: SUN

Your keystore contains 2 entries

caroot, Dec 13, 2018, trustedCertEntry,

Certificate fingerprint (SHA1): 6D:43:77:F4:42:91:A1:C7:EC:2E:B8:F4:9C:B5:6A:ED:E0:4D:CA:F6

myserver, Dec 13, 2018, PrivateKeyEntry,

Certificate fingerprint (SHA1): 79:F1:B1:C3:DB:22:1D:8B:26:FC:EB:4A:43:C1:DE:F5:92:5C:5B:83

这个JKS包含两个entry,这样在提取证书的时候可以知道alias值为caroot或者myserver。

从JKS中提取KEY

JKS没有直接的办法提取KEY,所以整个过程分三步走:

把JKS转换成P12

$ keytool -importkeystore -srckeystore -destkeystore -deststoretype PKCS12 \

-srcstorepass -deststorepass

从P12文件中提取KEY

$ openssl pkcs12 -in -nodes -nocerts -out -passin pass:

删除多余的垃圾内容

$ sed -i "1,4d"

因为在第二步提出出来的KEY文件包含垃圾头信息:

Bag Attributes

friendlyName: myserer

localKeyID: 54 69 6D 65 20 31 35 34 34 36 39 37 32 32 33 35 31 35

Key Attributes:

-----BEGIN PRIVATE KEY-----

MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCUUDfdlHnAoAYE

DXluQZv64HNfrJzbUeD29OqQ+XWBKfz+6Sc8Ag4c3qEBezdqY6W06FqT8zkXYmOe

...

aBKlYCPpppexmuwTyRGWJxa3Mc0J4q9+EhDxE3XtmLE/2Wm0mm6vecjECHYXs8KZ

RiC8QuO7nMTFMVcWtgGDeA==

-----END PRIVATE KEY-----

java提取jks文件提取私钥_如何从JKS文件中取出PEM格式证书相关推荐

  1. java pem,如何验证Java中的PEM格式证书

    I have PEM format file, How can verify the signature in Java, as I followed http://download.oracle.c ...

  2. 如何将视频文件或各种类型的图片从PPT中取出

    如何将视频文件或各种类型的图片从PPT中取出 有时候我们做好了PPT,但需要PPT中的视频或者一些GIF图片以及其他格式的文件,又不想要其他的内容,而制作PPT的素材找不到了,那么该怎样从PPT中取出 ...

  3. python提取选中文件的文件名_如何从python文件路径中提取文件名?

    项目概述: 用户通过浏览器选择一个文件来导入数据.然后,我解包二进制文件.然后,我将新解包的数据保存为.csv文件,以便以后在excel中查看数据.用户当前通过键入新文件名来创建文件名.然后我继续用m ...

  4. angularjs java 文件上传_学习使用AngularJS文件上传控件

    前段时间做项目遇到一个需求是上传文件,大概需要实现的样式是这样子的,见下图: 需要同时上传两个文件.并且规定文件格式和文件大小.因为前端框架使用angular,且不想因为一个上传功能又引入一个jque ...

  5. python pyc文件是啥_什么是.pyc文件

    Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在. 如果是解释型语言,那么生成的*.pyc文件是什么呢?c应该是compiled的缩写才对啊! 为了防止其他学习Pyt ...

  6. tga文件怎么打开_六安软件定制文件打开的时候乱码怎么解决?

    启达信息技术有限公司成立于2012年,是一家软件定制开发.移动终端应用开发的软件公司,同时也是软件云服务及企业信息化一揽子解决方案的提供商. 软件定制开发180 5607 0543 元旦的时候小编的朋 ...

  7. python文件的基本操作_「Python」 - 文件基本操作

    以下练习,文件名.函数名.变量名有许多不规范的地方,但是也是练习python脚本,就不修正了,在Linux环境上都能成功执行. 小标题不足以代表脚本功能,具体参看描述,有一些也没有按照要求写在,主要是 ...

  8. js对本地文件进行加密_怎么对电脑文件进行加密

    怎么保护电脑文件安全 禁止修改计算机文件内容?如何保护计算机电脑文件的安全,防止电脑文件被意外修改呢?背景电脑中的重要文件,甚至是局域网共享的文件夹,我们有必要保护其电脑文件的完整性,防止被恶意修改, ...

  9. centos 下载文件很慢_百度云盘上传文件和下载文件慢的解决办法

    百度云盘上传文件和下载文件慢的解决办法 一:上传文件慢 1. 左下角点击搜索,输入cmd,右键以管理员身份运行 2. 在弹出的窗口中输入netsh interface tcp set global a ...

  10. icc校色文件使用教程_使用ICC特性文件进行校色的方法

    使用 ICC 特性文件进行校色的方法 使用 ICC 特性文件进行校色的方法 使用 ICC 特性文件进行校色的方法 6 A5 s: l3 D5 M) N- \+ j9 V 武汉信息传播职业技术学院兼职 ...

最新文章

  1. UVa 10180 - Rope Crisis in Ropeland!
  2. 1025 反转链表 (25分)(最详细最简便)(套路模板)
  3. 通过Java 8流使用Oracle AQ
  4. 【渝粤教育】电大中专测量学作业 题库
  5. ubuntu-14.04.2-desktop使用方法
  6. (3)<meta>标签
  7. MyBatis 配置sql语句输出
  8. React Native 交互管理器InteractionManager
  9. 黑苹果使用AppleALC驱动声卡
  10. 讲解制作“Icon”
  11. java中修改上传图片大小,springMVC MultipartFile 上传图片时修改图片大小
  12. 【学习笔记】Kruskal 重构树(BZOJ3551【ONTAK2010】Peaks加强版)
  13. 给图片加ALT属性是个什么意思?有什么优点呢
  14. dzz云桌面1.2部分主要功能图文介绍
  15. HDU5442(字符串的最大表示法或者后缀数组)
  16. 阿里巴巴的P8Java架构师都是一群什么样的存在?
  17. 数值计算之 最小二乘法(3)最小二乘的矩阵解法
  18. phpStorm中使用模板快速创建html基本网页代码
  19. 基于LSTM和词嵌入的tweet文本分类
  20. 【Python 实战基础】什么是PyQt6? 简单介绍一下PyQt6

热门文章

  1. 计算机组成原理实验移位运算,移位运算实验
  2. 桑佛德大学计算机科学,美国桑佛德大学专业都有哪些?每个专业都有什么优势?一起来了解下吧?...
  3. VS 和 VS Code 更换字体
  4. 目标客户画像_做营销时,如何做好目标用户群体画像?
  5. PMP-7. 项目经理及其影响力
  6. 博客园的 “随笔、文章、日记”有什么区别?
  7. 《jike--微服务架构核心20讲》笔记
  8. datawhale8月组队学习《pandas数据处理与分析》(下)(文本、分类、时序数据)
  9. APSINx010HC系列射频模拟信号发生器—输出高达6.1GHz
  10. AOP之5种增强方法应用范例