如何提取JKS文件的证书和私钥?

2024-09-07 00:18
文章标签 提取 证书 私钥 jks

本文主要是介绍如何提取JKS文件的证书和私钥?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章来源

https://jingyan.baidu.com/article/066074d61de50cc3c21cb0ba.html

验证命令如下:
    > 生成证书文件:keytool -genkey -alias server_cert -keypass 12345678 -keyalg RSA -keysize 1024 -validity 365-keystore C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.keystore -storepass 87654321> 查看证书详情:keytool -list -v -keystore C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.keystore -storepass 87654321> keystore文件生成cer文件:keytool -export -alias server_cert -keystore C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.keystore-file C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\tomcat_server.cer> 打印证书信息:keytool -list -rfc -keystore C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.keystore -storepass 87654321> 提取公钥(证书):将上一步(打印证书信息)中公钥信息复制到server.txt中保存后,将server.txt文件重新命名为:server.cer文件即可。> 提取私钥keytool -v -importkeystore -srckeystore C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.keystore -srcstoretype jks -srcstorepass 87654321 -destkeystore C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.pfx -deststoretype pkcs12 -deststorepass 876543210 -destkeypass 12345678其中原密钥口令为:12345678openssl pkcs12 -in C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.pfx -nocerts -nodes -out C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.key其中Enter Import Password:876543210
证书生成如下:

在这里插入图片描述


所谓JKS(Java Key Store)就是利用Java Keytool 工具生成的Keystore文件,JKS文件由公钥和密钥构成,其中的公钥就是我们所说的证书,即cer为后缀的文件,而私钥就是密钥,即以key为后缀的文件。本文主要介绍如何通过Keytool结合Openssl提取jks文件的公钥和私钥。

在这里插入图片描述


前提:
  • OpenSSL

一、准备工作

下图中的server.jks文件为小编用java keytools生成的密钥库文件。其中server.keystore和server.jks效果等同。

如果想了解如何用Keytool生成jks文件请参阅如下链接。

https://blog.csdn.net/u013412772/article/details/103726154 (keytool如何生成自签名证书?)

二、提取公钥(证书)

切换到证书的存储路径,执行如下命令:

keytool -list -rfc -keystore server.jks -storepass 87654321

则可以将证书信息打印到屏幕上。

在这里插入图片描述
将上图中的字符串复制保存到新建的server.txt文件中

在这里插入图片描述
将文件server.txt后缀名改为cer,双击打开cer文件即可以看见证书信息。

在这里插入图片描述

三、提取私钥

jks文件中的私钥不能直接得到,需要通过openssl将jks文件转换成pfx格式后再进行提取。

执行如下命令将server.jks文件转换成server.pfx文件:

keytool -v -importkeystore -srckeystore server.jks -srcstoretype jks 
-srcstorepass 87654321 -destkeystore server.pfx -deststoretype pkcs12 
-deststorepass 876543210 -destkeypass 12345678

在这里插入图片描述
执行如下命令便可以将servers.pfx的私钥导出:

openssl pkcs12 -in server.pfx -nocerts -nodes -out server.key

在这里插入图片描述
执行vim server.key命令,便可以看到pfx文件的私钥信息
在这里插入图片描述
有些网站提供了将jks文件转换成pfx文件的功能,但是都需要输入文件的密码(keystorepass),存在安全隐患!不建议使用。

这篇关于如何提取JKS文件的证书和私钥?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1143525

相关文章

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

3.比 HTTP 更安全的 HTTPS(工作原理理解、非对称加密理解、证书理解)

所谓的协议 协议只是一种规则,你不按规则来就无法和目标方进行你的工作 协议说白了只是人定的规则,任何人都可以定协议 我们不需要太了解细节,这些制定和完善协议的人去做的,我们只需要知道协议的一个大概 HTTPS 协议 1、概述 HTTPS(Hypertext Transfer Protocol Secure)是一种安全的超文本传输协议,主要用于在客户端和服务器之间安全地传输数据

ROS - C++实现RosBag包回放/提取

文章目录 1. 回放原理2. 回放/提取 多个话题3. 回放/提取数据包,并实时发布 1. 回放原理 #include <ros/ros.h>#include <rosbag/bag.h>#include <std_msgs/String.h>int main(int argc, char** argv){// 初始化ROS节点ros::init(argc, argv,

HalconDotNet中的图像特征与提取详解

文章目录 简介一、边缘特征提取二、角点特征提取三、区域特征提取四、纹理特征提取五、形状特征提取 简介   图像特征提取是图像处理中的一个重要步骤,用于从图像中提取有意义的特征,以便进行进一步的分析和处理。HalconDotNet提供了多种图像特征提取方法,每种方法都有其特定的应用场景和优缺点。 一、边缘特征提取   边缘特征提取是图像处理中最基本的特征提取方法之一,通过检

如何根据相同分隔符提取间隔数据?

最近遇到很多提问怎么提取字符的,而这些问题都有一个相同的特征,就是要提取的内容与内容之间,都有着相同的分隔符。当然,这种问题直接用“数据” →  “分列”功能就可以一步到位实现的,但有人喜欢折腾,而更多的人又非得指定函数公式的方法,或者更多的是要保持数据的同步性。   下面,我们就来讲讲用函数公式应该怎么实现这个提取,首先来个数据和要求,如下图,将 - 号间隔的内容依次提取到右边单元格内:

Java8特性:分组、提取字段、去重、过滤、差集、交集

总结下自己使用过的特性 将对象集合根据某个字段分组 //根据id分组Map<String, List<Bean>> newMap = successCf.stream().collect(Collectors.groupingBy(b -> b.getId().trim())); 获取对象集合里面的某个字段的集合 List<Bean> list = new ArrayList<>

企业网银登录提示请确认您已插入工商银行U盾证书的解决方法

昨天受人之托帮小企业财务解决上网银的问题 因为不是专业做这个的,所以只能安装“常识”行事,但结果实在是令人意想不到。 排错的步骤: 同一台电脑上尝试不同浏览器,发现360浏览器的接受度相当普遍;给U盾换不同的连接线;在不同的电脑上安装银行的插件,再重复上面的步骤1和步骤2;最终的结果,在一台电脑上可以走到下一步,但时好时坏,无法解决问题;到知乎上找答案,在一篇说明里有提到定制的qq浏览器,最后

OpenCV结构分析与形状描述符(10)检测并提取轮廓函数findContours()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C++11 算法描述 在二值图像中查找轮廓。 该函数使用算法 253从二值图像中检索轮廓。轮廓是有用的工具,可用于形状分析和对象检测与识别。参见 OpenCV 示例目录中的 squares.cpp。 findContours 是 OpenCV 库中的一个重要函数