Java使用keytool创建CA证书

keytool是一个密钥和证书管理工具

1.keytool工具位置

keytool工具在 JDK 的安装目录的 bin 目录下面
Java使用keytool创建CA证书_第1张图片

2.keytool工具命令展示

打开命令行进入 bin 目录,然后输入命令 keytool.exe,就能看见keytool工具支持哪些命令,如下图所示:
Java使用keytool创建CA证书_第2张图片

注意下面的用法提示:使用 “keytool -command_name -help” 获取 command_name 的用法

3.查看具体命令用法

这里我们使用 -genkeypair 命令来创建密钥库,先来看看 genkeypair 命令的用法,如下图所示:
Java使用keytool创建CA证书_第3张图片

4.新建密钥库

.\keytool.exe -genkeypair -alias CA -keyalg RSA -validity 30 -keystore D:\keytoolCert\.CAkeystore

4.1.参数说明

  • -alias CA: alias表示别名的意思,这里别名为 CA,如果不写的话,它的默认值为 mykey
  • -keyalg RSA: 密钥算法名称,这里使用RSA算法
  • -validity 30: 有效天数为30天
  • -keystore D:\keytoolCert.CAkeystore: 指定密钥库存放的位置。

命令输入过后会让我们输入密码、唯一判别名(dname)和密钥口令
Java使用keytool创建CA证书_第4张图片

注意

  • 密钥库的密码至少必须6个字符,可以是纯数字或者字母或者数字和字母的组合等等
  • 名字与姓氏"应该是输入域名,而不是我们的个人姓名,其他的可以不填

这条命令的完整含义是:使用 keytool.exe ,创建一个别名为 CA,算法为 RSA,有效天数为30天的密钥,并将它存放在 D:\keytoolCert\ 目录下的一个名叫 .CAkeystore 的密钥库中,如果密钥库不存在则自动创建。

执行完上述命令后,在 D:\keytoolCert\ 目录下生成了一个".CAkeystore"的文件,如下图所示:
Java使用keytool创建CA证书_第5张图片

5.查看密钥库里面的信息

命令如下:

.\keytool.exe -list -keystore D:\keytoolCert\.CAkeystore -v

结果如下:
Java使用keytool创建CA证书_第6张图片

5.1.查看密钥库信息其他命令

  • 查看密钥库中指定密钥的信息: keytool.exe -list -alias CA -keystore
    “D:\keytoolCert.CAkeystore” -v

6.导出密钥到证书文件

.\keytool -export -alias CA -file D:\keytoolCert\pendIssueCert_1.cer -keystore D:\keytoolCert\.CAkeystore

Java使用keytool创建CA证书_第7张图片
执行完上述命令后,在 D:\keytoolCert\ 目录下生成了一个"pendIssueCert_1.cer"的证书文件,如下图所示:
Java使用keytool创建CA证书_第8张图片

7.查看指定证书文件的信息:

keytool.exe -printcert -file D:\keytoolCert\.pendIssueCert_1.cer -v

Java使用keytool创建CA证书_第9张图片

8.导入证书

将证书文件 pendIssueCert_1.cer 导入到名为 .pendIssuekeystore 的证书库中

keytool -import -keystore D:\keytoolCert\.pendIssuekeystore -file D:\keytoolCert\pendIssueCert_1.cer

Java使用keytool创建CA证书_第10张图片
注意:

  • D:\keytoolCert.pendIssuekeystore 密钥库不存在会自动创建
  • 导入时没有输入 -alias 那么它的别名就是 mykey ,如果有需要可以自己指定别名

9.删除密钥库中的条目

删除密钥库 .pendIssuekeystore 中别名为 mykey 的证书条目

keytool -delete -keystore D:\keytoolCert\.pendIssuekeystore -alias mykey

Java使用keytool创建CA证书_第11张图片
删除前先查看 有一个密钥,删除后再查看就没有了,表示删除成功。

修改证书条目的口令

将密钥库 .pendIssuekeystore 中别名为 mykey 的证书条目的密码修改为 123456
keytool -keypasswd -alias mykey -keystore D:\keytoolCert.pendIssuekeystore


技 术 无 他, 唯 有 熟 尔。
知 其 然, 也 知 其 所 以 然。
踏 实 一 些, 不 要 着 急, 你 想 要 的 岁 月 都 会 给 你。


你可能感兴趣的:(Java)