在对密钥库和证书进行了一些研究之后,我发现了以下指南:
如果我错了,请纠正我.据我了解(和测试):
>在cmd中使用“ keytool -genkeypair -alias testingkeypair -keyalg RSA -keystore keystore.jks”将生成一个keystore.jks文件,该文件包含别名为“ domain”的私钥和公钥对
>然后将keystore.jks文件用于签名/导出证书
> keystore.jks文件也可以用于存储多个证书
我不明白的是,在将任何证书导入keystore.jks文件之前,当我尝试查看其中的内容(使用keytool -list -v -keystore keystore.jks)时,似乎存在一个证书已经在里面了它是该密钥库的默认证书吗?我以为“ keytool -genkeypair”将只生成带有密钥对的密钥库?
keytool -list -v -keystore keystore.jks的结果:
Keystore type: JKS Keystore provider: SUN
Your keystore contains 1 entry
Alias name: testingkeypair Creation date: Jan 11, 2016 Entry type:
PrivateKeyEntry Certificate chain length: 1 Certificate:
Owner:CN=testing, OU=testing, O=testing, L=testing, ST=testing,
C=testing Issuer: CN=testing, OU=testing, O=testing, L=testing,
ST=testing, C=testing Serial number: 650d8951 Valid from: Mon Jan 11
14:43:52 SGT 2016 until: Sun Apr 10 14:43:52 SGT 2016 Certificate
fingerprints:
MD5: F0:74:9F:27:F0:08:AB:A0:BE:B2:A0:F2:94:45:94:90
SHA1: 87:0C:E2:E2:06:A6:52:4E:0C:40:E9:B0:DE:75:A7:8C:CC:01:45:57
SHA256: D1:B2:63:F0:85:A7:06:2E:7D:2B:E1:1E:91:9E:62:56:22:E7:61:36:E6:
23:8A:6F:21:EF:2B:79:0D:12:B8:38
Signature algorithm name: SHA256withRSA
Version: 3
解决方法:
看来,每当使用-genkey时,都会生成一对公钥/私钥对,并将公钥包裹在证书(自签名)周围.因此,当我在-genkey命令之后立即使用“ keytool -list -v”命令时看到的证书就是公钥的证书.
标签:ssl,java
来源: https://codeday.me/bug/20191119/2034239.html