1 回答

TA貢獻1848條經驗 獲得超10個贊
首先,我們要明確幾點:
文件
JKS
由條目組成,其中每個條目是 aPrivateKeyEntry
或trustedCertEntry
.?(對稱密鑰還有其他類型,是的,但是在討論公鑰密碼學時讓我們忘記它們。)當您運行時
genkey
,您將生成一個私鑰條目。如您所料,它包含私鑰和公鑰。您可以僅從私鑰條目中導出公鑰,然后將其導入另一個
JKS
,這一次證明是受信任的證書條目,因為它只包含公鑰。每個生成的證書最初都是自簽名的。僅當使用另一個私鑰條目(CA 的)對其進行簽名時,它才不是自簽名的。受信任的證書條目可以是自簽名的或 CA 簽名的。根 CA 證書始終是自簽名的。
使用
JKS
as truststore 意味著您信任其中的條目,無論它們是自簽名的還是 CA 簽名的。您可以創建自己的 CA,將其公鑰導入文件JKS
并將其用作您的信任庫。這意味著您只信任由您的 CA 簽署(直接或間接)的證書。(間接意味著有中間證書由您的 CA 簽名并再次用于簽署其他證書。)
現在回答你的問題,
Q1
如上所述,使用密鑰庫作為信任庫意味著“信任其中的條目”,因此它可以工作。無需由另一方(即 CA)簽署。
Q2
“嵌入crt文件就是導入.這樣理解對嗎?”
是的。
“命令‘keytool -genkey -alias signFiles -keystore examplestore’是否創建自簽名證書?”
是的。
關于使用不同密鑰庫和信任庫配置的試驗:在典型SSL
設置中,只有服務器具有私鑰并出示其證書。只有客戶端驗證服務器,反之亦然。如果服務器被配置為要求證書(這是可能的),那么您在瀏覽網站時必須選擇您的私鑰https
。驗證客戶的情況很少見。這就是為什么向客戶端提供密鑰庫和向服務器提供信任庫都沒有效果的原因。僅當您向客戶端提供無效的信任庫時,它才會失敗。
添加回答
舉報