我对这方面知之甚少,但我仍然试图通过谷歌搜索来做事。这是我面临的问题。
我有一个CA签名证书,我想在我的Web应用程序中使用它。我首先创建了一个密钥库。我看到它在密钥库中创建了一个条目类型“keyEntry”。然后我将CA签名证书导入到创建的密钥库。
以下是步骤:
keytool -genkeypair -keystore keystore.jks
我在别名“mykey”的“keyEntry”类型的密钥库中看到一个条目
现在我导入证书:
keytool -importcert -alias abc -file cert.crt -keystore keystore.jks
现在我看到另一个trype“trustedcertEntry”条目。
使用此密钥库,我可以在上传时访问我的Web应用程序。
我在导入证书时动态创建了一个密钥库。
keytool -importcert -alias abc -file cert.crt -keystore keystore2.jks
这里我只看到一个条目类型是“trustedcertEntry”
使用此密钥库,我无法访问我的Web应用程序。
什么是密钥条目类型“keyEntry”和“trustedcertEntry”以及为什么我的密钥库仅在我的条目类型为“keyEntry”时才有效
答案 0 :(得分:8)
我对keytool的理解充其量是微不足道的,但我认为诀窍在于案例2,省略了-genkeypair
,你没有生成必要的私钥。
在案例1中,您使用的步骤是:创建私钥对(公钥和私钥),然后将证书导入密钥库的可信证书。假设您在密钥库中有另一个证书加入私钥,尽管可信证书可能作为证书,或者您的应用程序未使用联合密钥对/证书文件。
我可以说' trustedCertEntry '是密钥库信任的证书。这对于允许证书链是必不可少的(例如:Root-CA签署Intermediate-CA1签署End-Cert1。如果没有Root-CA和Intermediate-CA1作为trustedCertEntry,则密钥库不信任最终证书)。 TrustedCertEntry没有与之关联的私钥,只有证书包含的公钥。
keyEntry (我认为!)是没有证书的公钥/私钥对。
privateKeyEntry 是具有关联的CA签名或自签名证书的公钥/私钥对。