JAVA_KEYTOOL_生成秘钥_一蓑烟雨任平生

本文介绍了如何使用Java的keytool命令生成RSA加密的密钥对,并详细解释了相关参数。在生成JKS格式的密钥库后,由于JKS不是行业标准,因此建议将其转换为PKCS12格式。转换过程通过keytool的importkeystore命令完成。此外,还展示了如何使用OpenSSL查看公钥并导出公钥文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

项目中需要秘钥加密,Java开发使用jdk生成最方便


问题描述

生成代码如下

在cmd中执行JDK中keytool的命令:
# keytool -genkeypair -alias zhangzhang -validity 36500 -keyalg RSA -dname "CN=jwt,OU=jtw,O=jwt,L=zurich,S=zurich, C=CH" -keypass 123456 -keystore zhangzhang.jks -storepass 123456
------------------------------------------------------------------------------------------
# keytool -genkeypair 
    -alias test              别名
    -validity 36500          过期时间(天),默认大约90-keyalg RSA              加密算法
    -dname "CN=jwt,OU=jtw,O=jwt,L=zurich,S=zurich, C=CH"  名字与姓氏,组织单位,城市,区县,国家代码
    -keypass 123456          key密码,证书的密码
    -keystore test.jks       生成的jks文件位置和名称
    -storepass 123456        strore密码,证书库的密码
 
或者省略-dname参数(执行命令时会再次提示输入):
# keytool -genkeypair -alias zhangzhang -validity 36500 -keyalg RSA -keypass 123456 -keystore zhangzhang.jks -storepass 123456
 

原因分析:

执行完命令后,会警告:

JKS **库使用专用格式。建议使用 “keytool -importkeystore -srckeystore test.jks -destkeystore test.jks -deststoretype pkcs12” 迁移到行业标准格式 PKCS12。

不安全最好备份


解决方案:

执行

keytool -importkeystore -srckeystore zhangzhang.jks -destkeystore zhangzhang.jks -destkeystore pkcs12

安装OPENSSL

点这里下载

安装完成后,配置环境变量。把openssl安装路径bin的路径(例如 C:\Program Files\OpenSSL-Win64\bin)加入到操作系统的系统环境变量Path中。

执行查看公钥的命令:
# keytool -list -rfc --keystore zhangzhang.jks | openssl x509 -inform pem -pubkey

导出

执行命令:
# keytool -export -alias zhangzhang -keystore zhangzhang.jks -file test-publickey.cer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值