首页 > 其他分享 >jdk 中的 keytool 的使用,以及提取 jks 文件中的公钥和私钥

jdk 中的 keytool 的使用,以及提取 jks 文件中的公钥和私钥

时间:2023-09-02 21:11:38浏览次数:29  
标签:公钥 keytool 这里 jdk fanyfull jks 密钥 私钥

这里暂时只需要知道如何使用就可以了。

首先是生成一个密钥,

keytool -genkeypair -alias fanyfull -keypass ffkp123456 -validity 365 -storepass ffsp123456 -keystore fanyfull.jks -keyalg RSA

解释一下这里的选项,

  • -alias 密钥对的名称
  • -keypass 密钥密码
  • -validity 有效期,这里是以天为单位
  • -storepass 存储库的密码
  • -keystore 指定生成的密钥文件存放的位置,这里的 fanyfull.jks 表示的是当前目录下的 fanyfull.jks,如果没有,就生成这个文件
  • -keyalg 指定这个密钥对生成的算法,这里用的是 RSA 算法

如果想查看生成的 jks 文件的详细信息,可以使用以下命令,

keytool -list -v -alias fanyfull -storepass ffsp123456 -keystore .\fanyfull.jks

然后是提取私钥

keytool -importkeystore -srckeystore .\fanyfull.jks -destkeystore fanyfull.p12 -deststoretype PKCS12 -srcalias fanyfull -deststorepass ffsp123456 -destkeypass ffkp123456

然后根据提示输入 storepass 即可,

然后,可以使用 openssl 工具来提取其中的私钥,

openssl pkcs12 -nodes -in .\fanyfull.p12 -out private.pem

我们可以查看一下这里的私钥,

这里的 BEGIN PRIVATE KEYEND PRIVATE KEY 之间的内容就是我们的私钥。

然后是提取公钥

openssl pkey -in .\private.pem -pubout -out public.pem

我们可以查看一下这里的公钥,

这里的 BEGIN PUBLIC KEYEND PUBLIC KEY 之间的内容就是我们的私钥。

而,如果我们单纯地只是想提取证书的话,那么,可以使用以下的命令,

keytool -export -alias fanyfull -keystore .\fanyfull.jks -file public.cert -rfc

至于这里的 openssl 工具,我这里是 windows 环境,使用 scoop 安装一下即可。当然,你也可以选择使用其他的方式来安装,比如,直接从网上下载二进制包来安装。


标签:公钥,keytool,这里,jdk,fanyfull,jks,密钥,私钥
From: https://www.cnblogs.com/fanlumaster/p/17674203.html

相关文章

  • JDK20
    JDK20一、JDK下载步骤Oracle官网—>产品—>Java—>下载Java—>JDK20最新版本jdk-20_windows-x64_bin.exeJava下载JavaJDK20最新版本Oracle官网→产品→Java最新版本jdk-20_windows-x64_bin.exe二、配置环境变量操作系统变量名变量值注意......
  • lombok1.18.28无法在jdk21环境使用
    java:java.lang.NoSuchFieldError:Classcom.sun.tools.javac.tree.JCTree$JCImportdoesnothavememberfield'com.sun.tools.javac.tree.JCTreequalid'目前lombok在jdk21版本有缺陷关联问题https://github.com/projectlombok/lombok/issues/3393......
  • 你是如何阅读jdk源码的?
    阅读别人的代码作为开发人员是一件经常要做的事情。一个是学习新的编程语言的时候通过阅读别人的代码是一个最好的学习方法,另外是积累编程经验。如果你有机会阅读一些操作系统的代码会帮助你理解一些基本的原理。还有就是在你作为一个质量保证人员或一个小领导的时候如果你要做白盒......
  • JDK1.5在WIN7中显示时间不正确的问题解决
    最近发现一些新的windows操作系统中,JDK显示的时区不是正确的GMT+08的,而是默认的格林威治时间原以为是系统时区设置不对,但发现系统时间正确,时区也正确,就是JDK的不正确网上很多方法都是手动改tomcat设置,或者在代码中写死时区,这种做法都是治标不治本的于是继续查找根本所在后来几经比......
  • 安装JDK
    1、下载JDKJDK官网:https://www.oracle.comJDK下载地址:https://www.oracle.com/java/technologies/downloads/archive/JDK8下载地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html2、安装JDK]#tarzvfx./jdk-8u162-linux-x64.tar.gz-......
  • Git查看本机 ssh 公钥或生成公钥
    第一步查看git的ssh公钥是否存在在安装目录中打开GitBash并打开,然后在GitBash输入以下命名查看是否有密钥:ls-al~/.ssh第二步查看git的ssh公钥内容,并复制git的ssh公钥存储在id_rsa.pub文件中,如果id_rsa.pub文件,直接输入命令查看git公钥:cat~/.ssh/id_rsa.pub......
  • jdk1.8 AudioSystem 无法关闭流的问题
    问题首先说明JDK版本,EclipseTemurin1.8.0_382,写音频处理时遇到一个文件流无法关闭的问题。具体是javax.sound.sampled.AudioSystem#getAudioInputStream(java.io.File)写在try-with-resources里,在try-with-resources结束的代码块外删除文件显示文件被占用,最后在stackov......
  • OpenJDK17.0.8字节码解读样例
    因为JDK17将会成为未来5至10年里Java应用的主流JDK,刚好闲着没事,就想着将《深入理解Java虚拟机》一书中关于字节码的解读样例在OpenJDK17.0.8上看看变化有多大!先把实验环境说明一下:OS:Windows10专业版 22H2JDK:openjdkversion"17.0.8"2023-07-18LTS源......
  • tomcat9中设置jks证书和pfx证书
    jks证书设置server.xml<Connectorport="443"protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="1000"connectionTimeout="30000"maxPostSize="-1"enabl......
  • JDK、JRE、JVM
    JDK、JRE、JVMJDK:JavaDevelopmentKit开发者工具JRE:JavaRuntimeEnvironment运行环境JVM:JavaVritualMachine虚拟机上图为JDK、JRE、JVM的关系图以及用途 ......