jdk 中的 keytool 的使用,以及提取 jks 文件中的公钥和私钥
这里暂时只需要知道如何使用就可以了。
需要注意的一点是,这里是使用 jdk17 中带有的 keytool 生成的。所以,会出现以下的问题,这就导致了无法使用 java 来进行提取其中的公钥和私钥,
1 |
|
这里更多的信息可以看这篇博客,
https://www.cnblogs.com/simon-xie/p/17004614.html
首先是生成一个密钥,
1 |
|
解释一下这里的选项,
- -alias 密钥对的名称
- -keypass 密钥密码
- -validity 有效期,这里是以天为单位
- -storepass 存储库的密码
- -keystore 指定生成的密钥文件存放的位置,这里的
fanyfull.jks
表示的是当前目录下的fanyfull.jks
,如果没有,就生成这个文件 - -keyalg 指定这个密钥对生成的算法,这里用的是 RSA 算法
如果想查看生成的 jks 文件的详细信息,可以使用以下命令,
1 |
|
然后是提取私钥,
1 |
|
然后根据提示输入 storepass 即可,
然后,可以使用 openssl 工具来提取其中的私钥,
1 |
|
我们可以查看一下这里的私钥,
这里的 BEGIN PRIVATE KEY
和 END PRIVATE KEY
之间的内容就是我们的私钥。
然后是提取公钥,
1 |
|
我们可以查看一下这里的公钥,
这里的 BEGIN PUBLIC KEY
和 END PUBLIC KEY
之间的内容就是我们的私钥。
而,如果我们单纯地只是想提取证书的话,那么,可以使用以下的命令,
1 |
|
至于这里的 openssl 工具,我这里是 windows 环境,使用 scoop 安装一下即可。当然,你也可以选择使用其他的方式来安装,比如,直接从网上下载二进制包来安装。
jdk 中的 keytool 的使用,以及提取 jks 文件中的公钥和私钥
http://fanlumaster.github.io/2023/08/28/jdk-中的-keytool-的使用/