在使用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中。
答案 0 :(得分:1)
您可以使用-importkeystore
选项将新生成的密钥对导入cacerts.jks密钥库。
但是,cacerts.jks不应包含私钥。它是"信任锚和#34; - 证书的集合,可用于验证其他证书。我建议仅exporting来自keystore.jks的新证书,importing来cacerts.jks,而不是完整的密钥对。