2017-05-04 49 views
0

通常情況下,cacert被用作信任倉庫,這意味着我們放置其他服務器的證書,以便我們對其進行身份驗證(我們信任來自這些服務器的連接,僅當它們使用與信任)。密鑰倉庫的用途

而密鑰庫通常用於存儲密鑰(它們在我們用作服務器時使用)。

但問題是,我發現在互聯網上的命令也在密鑰庫中添加證書,並且keytool中沒有用於在密鑰庫中添加私鑰的基本功能。

因此,我開始想知道我是否誤解了密鑰庫的目的和它的作用。任何人都可以告訴我,如果我錯了?

回答

1

技術上KeyStore和TrustStore屬於同一類型。他們只是基於他們所包含的內容而提供不同的目的

A KeyStore只是一個數據庫或存儲庫或一組證書或密鑰或密鑰對。當KeyStore只包含證書時,您將其稱爲TrustStore。

當您還有私鑰與其相應的證書鏈(密鑰對或非對稱密鑰)相關聯時,它被稱爲KeyStore。

有不同類型的密鑰庫JCE提供支持:

  • JKS(Java密鑰存儲) - >當你只有榮譽證書,這是一個信任。當您還擁有與證書鏈關聯的私鑰時,它就是一個KeyStore。
  • JCEKS(Java Enhanced Key Store) - >這些可以存儲JKS可以存儲的內容以及額外的密鑰(對稱密鑰)。您不能將密鑰存儲在JKS類型的KeyStore中。
  • PKCS12 - >這就像一個KeyStore,但是一個叫做PKCS12的不同類型。這些可以存儲私鑰以及他們的證書鏈。但標準是隻有1個條目,即1個私鑰和其相關的證書鏈。

它們的目的可以是廣泛的,但一般用於這些目的:

  • JKS - 保護您的網絡服務器。
  • JCEKS - 存儲您的加密密鑰(對稱),也可用於保護Web服務器。
  • PKCS12 - 當爲雙向SSL設置Web服務器時,它需要客戶端向服務器進行身份驗證。在這些情況下,客戶端會生成一個KeyPair,並從中生成一個CSR(PKCS10),並由證書頒發機構(CA)對其進行簽名。然後給客戶端一個證書鏈,客戶端將它與PKCS12 KeyStore中的PrivateKey相關聯。它可以用來建立SSL連接。
+0

您不會向客戶端發出PKCS12。客戶會建立他自己的。不要將代碼格式設置爲不是代碼的文本。 – EJP

+0

@EJP你說得對。更正它。 –