如何提取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

相关文章

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

python解析HTML并提取span标签中的文本

《python解析HTML并提取span标签中的文本》在网页开发和数据抓取过程中,我们经常需要从HTML页面中提取信息,尤其是span元素中的文本,span标签是一个行内元素,通常用于包装一小段文本或... 目录一、安装相关依赖二、html 页面结构三、使用 BeautifulSoup javascript

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

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提供了多种图像特征提取方法,每种方法都有其特定的应用场景和优缺点。 一、边缘特征提取   边缘特征提取是图像处理中最基本的特征提取方法之一,通过检

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

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