keytool,openssl的使用

写在前面

在生成公钥私钥,配置https时经常需要用到keytool,openssl工具,本文就一起看下其是如何使用的。

keytool是jdk自带的工具,不需要额外下载,但openssl需要额外下载

1:使用keytool生成jks私钥文件

C:\Windows\system32>D:\\programs\\javas\\java1.8\\bin\\keytool -genkeypair -alias changgou -keyalg RSA -keypass changgou -keystore d:\test\\changgou22.jks -storepass changgou
您的名字与姓氏是什么?
  [Unknown]:  d
您的组织单位名称是什么?
  [Unknown]:  d
您的组织名称是什么?
  [Unknown]:  e
您所在的城市或区域名称是什么?
  [Unknown]:  t
您所在的省/市/自治区名称是什么?
  [Unknown]:  t
该单位的双字母国家/地区代码是什么?
  [Unknown]:  cn
CN=d, OU=d, O=e, L=t, ST=t, C=cn是否正确?
  [否]:  y


Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore d:\test\\changgou22.jks -destkeystore d:\test\\changgou22.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

提示你录入的信息,测试的话随便录就行,正式使用的话最好录入真实的,不过都无所谓,最后选择y代表统一让你核对的信息,就生成jks文件了:
在这里插入图片描述
这就是我们加密时候使用的私钥文件。

2:使用keytool查看生成的jks私钥文件

C:\Windows\system32>D:\\programs\\javas\\java1.8\\bin\\keytool -list -v -keystore d:\\test\\changgou22.jks -storepass changgou
密钥库类型: jks
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: changgou
创建日期: 2024-4-26
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=d, OU=d, O=e, L=t, ST=t, C=cn
发布者: CN=d, OU=d, O=e, L=t, ST=t, C=cn
序列号: 44c900bc
有效期为 Fri Apr 26 13:31:03 CST 2024 至 Thu Jul 25 13:31:03 CST 2024
证书指纹:
         MD5:  B0:C7:50:41:C1:A5:D7:0C:C0:7D:2D:0C:B9:F2:E6:80
         SHA1: CC:3C:58:FA:4C:7B:FD:DE:E0:BF:FC:3B:A6:05:5D:5E:8C:15:86:33
         SHA256: A6:3A:BC:AE:58:75:C0:E8:5A:9A:AB:16:4D:B4:2D:BE:55:F6:DC:F6:D4:AC:C1:43:4D:E5:8A:D5:0A:BC:4B:B8
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 7E 14 12 F9 51 A8 8A 80   05 51 9E 93 72 9C EF E8  ....Q....Q..r...
0010: D4 8C E5 1B                                        ....
]
]



*******************************************
*******************************************



Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore d:\\test\\changgou22.jks -destkeystore d:\\test\\changgou22.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

3:使用keytool导出二进制的公钥证书

这种公钥证书可以直接安装到操作系统中。

C:\Windows\system32>D:\\programs\\javas\\java1.8\\bin\\keytool -export -alias changgou -keystore d:\\test\\changgou22.jks -file D:\\test\\changgou22.cer -storepass changgou
存储在文件 <D:\\test\\changgou22.cer> 中的证书

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore d:\\test\\changgou22.jks -destkeystore d:\\test\\changgou22.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

在这里插入图片描述
直接双击是可以安装到操作系统的:
在这里插入图片描述

3:使用keytool导出明文的公钥

一般是程序使用。

C:\Windows\system32>D:\\programs\\javas\\java1.8\\bin\\keytool -list -rfc --keystore d:\\test\\changgou22.jks | D:\\programs\\OpenSSL-Win64\\bin\\openssl x509 -inform pem -pubkey
输入密钥库口令:  Warning: Reading certificate from stdin since no -in or -new option is given
changgou

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore d:\\test\\changgou22.jks -destkeystore d:\\test\\changgou22.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmLXt1bG3uUneO/JnKkp6
uXf/7/qK5wgnrWttk9yCryutzzGQOYLfZbu3E9HnpJ6DHL04In9tk3s04+NfUS7z
yricpRjoPfnppZHI/DEqTQioKmg90j8hdASZIrqsn6dwYy/hK7LxMf+WCeLw8gFL
T3f2R3ZMYo6szcdFkNp5mIvigalVV4+OUe268DxJW4X1mAwEdS2ry561kTkqiBvo
djnID7KA/qVsURkiqb7wRHVCgWdL6dMO0wdL/aacTyM7toXxASgw1yLSJJjUIaG2
aydmlLAQEproSFbx90p13ponVWRuh+8yIQwDO+zvq/itwuc8dGHHnPaQ5TWvicQ9
SwIDAQAB
-----END PUBLIC KEY-----
-----BEGIN CERTIFICATE-----
MIIDMTCCAhmgAwIBAgIERMkAvDANBgkqhkiG9w0BAQsFADBJMQswCQYDVQQGEwJj
bjEKMAgGA1UECBMBdDEKMAgGA1UEBxMBdDEKMAgGA1UEChMBZTEKMAgGA1UECxMB
ZDEKMAgGA1UEAxMBZDAeFw0yNDA0MjYwNTMxMDNaFw0yNDA3MjUwNTMxMDNaMEkx
CzAJBgNVBAYTAmNuMQowCAYDVQQIEwF0MQowCAYDVQQHEwF0MQowCAYDVQQKEwFl
MQowCAYDVQQLEwFkMQowCAYDVQQDEwFkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAmLXt1bG3uUneO/JnKkp6uXf/7/qK5wgnrWttk9yCryutzzGQOYLf
Zbu3E9HnpJ6DHL04In9tk3s04+NfUS7zyricpRjoPfnppZHI/DEqTQioKmg90j8h
dASZIrqsn6dwYy/hK7LxMf+WCeLw8gFLT3f2R3ZMYo6szcdFkNp5mIvigalVV4+O
Ue268DxJW4X1mAwEdS2ry561kTkqiBvodjnID7KA/qVsURkiqb7wRHVCgWdL6dMO
0wdL/aacTyM7toXxASgw1yLSJJjUIaG2aydmlLAQEproSFbx90p13ponVWRuh+8y
IQwDO+zvq/itwuc8dGHHnPaQ5TWvicQ9SwIDAQABoyEwHzAdBgNVHQ4EFgQUfhQS
+VGoioAFUZ6Tcpzv6NSM5RswDQYJKoZIhvcNAQELBQADggEBAGNTxcFQtRofy6Nm
Mo78mkj/fXcEDm4qKij3sYTKDhsmDzKhOU9f3eqNAeaCZsENiEJsXhXInIlIsqVV
P8lRnc/BX8oViuSynVe+QQ6/yAL3238Jkiz6k3aA6VOvY+wGrCRmH0dND3Rn8XmI
pYf+fyyNjXnqvG+jdMK/3/cyvTGjmyB9C6132E8wAo31L6KyZ3wjMggq1v9gvXdi
05KY0Ys3zR6F9Pbr9gSofWXELFH3s2v3Oysi3dW1dtObC6ECNdEnW7QybzKr9bo3
ccCY2jZpfRCoukuj3DVTfdXuu30bXgE/1CCeTXdPpewdq37zW2dLK43sLvsuDh6r
aL8nbvI=
-----END CERTIFICATE-----

C:\Windows\system32>

在这里插入图片描述
将红框中的文件复制到文件中并命名为.cert即可用来作为公钥来解密。

写在后面

参考文章列表

SpringSecurityOauth2授权模式与使用RSA非对称加密方式生成公钥私钥

使用JDK的 keytool 生成JKS、使用openssl查看公钥、导出公钥publickey.cer证书

多知道一点

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值