密钥库和cacerts之间的别名不同密钥OK?或者,如何在密钥库/ cacerts之间导出/导入密钥?

时间:2015-02-24 16:49:46

标签: java certificate keystore

在使用java 1.7的Linux Centos系统上,可以在keystore.jks中使用别名为xyz123的密钥,在cacerts.jks中使用具有相同别名的其他密钥吗?或者,会有什么破裂吗?

我删除了别名' xyz123' (因为它是1024位)在keystore.jks文件中,然后使用别名' xyz123'创建了一个新密钥(对于2048位)。对于密钥库使用:

keytool -keysize 2048 -genkey -alias xyz123 -keyalg RSA 
-dname "CN=mydomain.com,OU=GF,O=MyCorp,
L=MyCity,ST=MyState,C=US" -validity 7300 -keypass 
mypwd -storepass mypwd -keystore keystore.jks

但现在我注意到cacerts.jks中也存在别名xyz123(旧密钥)。所以,现在相同的别名指向密钥库和cacerts之间的不同密钥。我担心如果我重复上面的代码,但是对于cacerts,虽然新的密钥进入cacerts.jks,但仍然存在相同的情况(例如,相同的别名指向密钥库和cacerts之间的不同密钥)。

有没有办法执行上面的代码,但是以某种方式包含keystore和cacerts作为行参数?

或者,或许我需要知道的是如何以某种方式将密钥生成为单独的文件,然后如何导入到每个密钥库和cacerts中。

1 个答案:

答案 0 :(得分:1)

您可以使用-importkeystore选项将新生成的密钥对导入cacerts.jks密钥库。

但是,cacerts.jks不应包含私钥。它是"信任锚和#34; - 证书的集合,可用于验证其他证书。我建议仅exporting来自keystore.jks的新证书,importing来cacerts.jks,而不是完整的密钥对。