在我对密钥库和证书进行了一些研究之后,我找到了以下指南:
如果我错了,请纠正我。根据我的理解(和测试):
我不明白的是,在我将任何证书导入keystore.jks文件之前,当我尝试查看内部的内容时(使用keytool -list -v -keystore keystore.jks),似乎已经是里面的证明。它是该密钥库的默认证书吗?我认为“keytool -genkeypair”只会生成一个带有密钥对的密钥库?
keytool -list -v -keystore keystore.jks的结果:
密钥库类型:JKS密钥库提供商:SUN
您的密钥库包含1个条目
别名:testingkeypair创建日期:2016年1月11日输入类型: PrivateKeyEntry证书链长:1证书: 所有者:CN =测试,OU =测试,O =测试,L =测试,ST =测试, C =测试发行人:CN =测试,OU =测试,O =测试,L =测试, ST =测试,C =测试序列号:650d8951有效期:1月11日星期一 2016年4月14日14:52直到:2016年4月10日星期日14:43:52 SGT 2016证书 指纹: 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 签名算法名称:SHA256withRSA 版本:3
答案 0 :(得分:2)
经过一些研究,我找到了我想要的答案。它是关键工具的官方javadoc。 http://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html#genkeyCmd
似乎每当使用-genkey时,都会生成一对公钥/私钥对,并且公钥会围绕证书(自签名)。因此,当我使用“keytool -list -v”命令直接在-genkey命令之后看到的证书是公钥的证书。
答案 1 :(得分:1)
第二个链接中给出的命令就是答案。 keytool -certreq \ -alias域名 -file domain.csr \ -keystore keystore.jks
您需要生成证书请求,该请求将生成证书签名请求.csr文件。 .csr文件将包含您的证书详细信息以及公钥,.jks文件将包含您的私钥。您需要像Symntac一样将.csr文件发送到CA以使其签名。 CA将签名并为您提供.cer或.crt(签名证书)。您需要导入到.jks(java密钥库)。 keytool -importcert \ -trustcacerts -file domain.crt \ -alias域名 -keystore keystore.jks
.jks就像一个存储证书和密钥的数据库。