java密钥库privatekeyentry与trustedcertentry

abithluo  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(1173)

我正在更新hadoop集群使用的证书。当前jks有一个条目:

Your keystore contains 1 entry

Alias name: myalias
Creation date: Jan 10, 2019
Entry type: PrivateKeyEntry
Certificate chain length: 1

我正在尝试从新证书创建新密钥库:

keytool -importcert -alias myalias  -file newcertfile.crt -keystore newkeystore.jks

但有人问我是否信任此证书(如果我说不,keytool将退出):

Trust this certificate? [no]:  yes

当我查看结果时,它不再是privatekeyentry,而是trustedcertentry:

keytool -list -v -keystore newkeystore.jks
...
...
Your keystore contains 1 entry

Alias name: myalias
Creation date: Feb 20, 2019
Entry type: trustedCertEntry
...
...

我错过了什么?我应该只使用jks和trustedcertentry,还是有办法让它和旧的jks(和privatekeyentry)一样?

nhaq1z21

nhaq1z211#

我最终发现我也必须提供私钥(正如roshith在他提供的链接中提到的)。
所以我首先创建了一个pfx文件:

openssl pkcs12 -export -out newcertbundle.pfx -inkey myprivate.key -in newcertfile.crt

然后转换成jks:

keytool -importkeystore -srckeystore newcertbundle.pfx -srcstoretype PKCS12 -srcstorepass mypass -deststorepass mypass -destkeypass mypass -destkeystore newkeystore.jks

我唯一搞不清楚(但对我来说不是太重要)的是如何使用别名,所以我选择了默认的别名(当我尝试指定一个别名时,我得到了:alias不存在)。这在这里讨论)。

相关问题