Java 密钥库 PrivateKeyEntry 与 trustedCertEntry
Java Keystore PrivateKeyEntry vs trustedCertEntry
我正在更新我的 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)一样?
我最终发现我还必须提供私钥(正如 Roshith mentioned in the link 他提供的那样)。
所以我首先创建了一个 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
我唯一想不通(但对我来说不太重要)的是如何使用别名,所以我使用了默认别名(当我尝试指定别名时,我得到:别名没有存在。这被讨论 here).
我正在更新我的 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)一样?
我最终发现我还必须提供私钥(正如 Roshith mentioned in the link 他提供的那样)。
所以我首先创建了一个 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
我唯一想不通(但对我来说不太重要)的是如何使用别名,所以我使用了默认别名(当我尝试指定别名时,我得到:别名没有存在。这被讨论 here).