keytool是 Java 提供的一个密钥和证书管理工具,常用于生成、导入、导出、查看和删除密钥库(KeyStore)中的条目。它广泛应用于 SSL/TLS 证书管理、HTTPS 配置、Java 应用

keytool是 Java 提供的一个密钥和证书管理工具,常用于生成、导入、导出、查看和删除密钥库(KeyStore)中的条目。它广泛应用于 SSL/TLS 证书管理、HTTPS 配置、Java 应用安全等领域。
在这里插入图片描述


🔧 一、keytool 命令详解

1. 查看密钥库内容

keytool -list -v -keystore <keystore-file> -storetype <type> -storepass <password>
  • -list: 列出密钥库中的所有条目。
  • -v: 显示详细信息。
  • -keystore: 指定密钥库文件路径。
  • -storetype: 密钥库类型(如 JKS, PKCS12)。
  • -storepass: 密钥库密码。

示例:

keytool -list -v -keystore keystore.jks -storepass changeit
keytool -list -v -keystore cert.pfx -storetype PKCS12 -storepass 123456

2. 生成自签名证书

keytool -genkeypair -alias <alias> -keyalg <algorithm> -keysize <bits> -storetype <type> -keystore <keystore-file> -validity <days> -storepass <password>
  • -genkeypair: 生成密钥对。
  • -alias: 密钥别名。
  • -keyalg: 加密算法(如 RSA、DSA)。
  • -keysize: 密钥长度(如 2048)。
  • -validity: 证书有效期(天数)。
  • -storepass: 密钥库密码。

示例:

keytool -genkeypair -alias mykey -keyalg RSA -keysize 2048 -storetype JKS -keystore mykeystore.jks -validity 365 -storepass changeit

3. 导出证书

keytool -exportcert -alias <alias> -file <cert-file> -keystore <keystore-file> -storepass <password>
  • -exportcert: 导出证书。
  • -file: 输出的证书文件(通常为 .cer.crt)。

示例:

keytool -exportcert -alias mykey -file mycert.cer -keystore mykeystore.jks -storepass changeit

4. 导入证书到信任库

keytool -importcert -alias <alias> -file <cert-file> -keystore <truststore-file> -storepass <password>
  • -importcert: 导入证书。
  • -file: 要导入的证书文件。

示例:

keytool -importcert -alias rootca -file rootca.crt -keystore truststore.jks -storepass changeit

5. 删除密钥库中的条目

keytool -delete -alias <alias> -keystore <keystore-file> -storepass <password>

示例:

keytool -delete -alias oldkey -keystore keystore.jks -storepass changeit

6. 更改密钥库密码

keytool -storepasswd -new <new-password> -keystore <keystore-file> -storepass <old-password>

示例:

keytool -storepasswd -new newpass -keystore keystore.jks -storepass oldpass

7. 更改密钥密码

keytool -keypasswd -alias <alias> -keystore <keystore-file> -keypass <old-key-pass> -new <new-key-pass> -storepass <keystore-pass>

示例:

keytool -keypasswd -alias mykey -keystore keystore.jks -keypass oldkeypass -new newkeypass -storepass keystorepass

📊 二、命令参数说明表格

参数含义示例
-alias密钥/证书别名-alias mykey
-keystore密钥库文件路径-keystore keystore.jks
-storetype密钥库类型(JKS/PKCS12)-storetype PKCS12
-storepass密钥库密码-storepass changeit
-keypass密钥密码-keypass keypass
-keyalg加密算法(RSA/DSA)-keyalg RSA
-keysize密钥长度-keysize 2048
-validity证书有效天数-validity 365
-file文件路径(证书或输出文件)-file cert.cer

🧩 三、常用场景推荐命令表格

场景命令示例
查看 JKS 内容keytool -list -v -keystore keystore.jks -storepass changeit
查看 PFX 内容keytool -list -v -keystore cert.pfx -storetype PKCS12 -storepass 123456
生成自签名证书keytool -genkeypair -alias mykey -keyalg RSA -keysize 2048 -keystore keystore.jks -validity 365 -storepass changeit
导出证书keytool -exportcert -alias mykey -file cert.cer -keystore keystore.jks -storepass changeit
导入证书keytool -importcert -alias rootca -file rootca.crt -keystore truststore.jks -storepass changeit
删除证书keytool -delete -alias oldkey -keystore keystore.jks -storepass changeit
修改密钥库密码keytool -storepasswd -new newpass -keystore keystore.jks -storepass oldpass
修改密钥密码keytool -keypasswd -alias mykey -keystore keystore.jks -keypass oldkeypass -new newkeypass -storepass keystorepass

如你有具体需求(例如:如何将 [.pfx](file://D:\workspace\me\rbac2024\read\后台系统\shop-api\itmk-base-web\target\classes\ssl\zhongyuele.top.pfx) 转换为 .jks?如何批量导入多个证书?),我可以提供更详细的指导。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱的叹息

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值