簡體   English   中英

.jks密鑰庫的目的是什么?

[英]What is the purpose of a .jks keystore?

我被要求根據我們創建的證書創建一個jks密鑰庫。 我已經閱讀了一些關於這個主題的內容,但我仍然對一些項目感到困惑:

證書的私鑰是否應該存儲在.jks keystone中?

如果是 - 這是什么輸入的? 使用keytool,它不需要創建一個jks文件。

如果不是 - jks文件的目的是什么? 為什么我的應用程序需要它而不是直接讀取證書? 為什么keytool需要密碼來創建一個jks,如果它只包含一個公鑰?

密鑰庫的目的是使用基於密碼的算法保護加密密鑰的隱私和完整性。 隱私意味着密鑰保密; 它們只能由知道密碼的人使用; 這對私鑰和密鑰很有用。 完整性意味着知道密碼的人可以檢測到密鑰的更改; 這對公鑰和密鑰很有用。

是否應該包含私鑰取決於您要執行的操作。 例如,如果要為服務器創建密鑰庫,以便它可以向客戶端驗證自身,那么它應該包含私鑰。 如果你創建了一個自簽名的證書,並希望給客戶一個密鑰存儲,以便他們可以驗證你的服務,那么它應該包含私鑰。

如果您有一個預先存在的密鑰對,並希望將其導入JKS格式密鑰存儲區,最簡單的方法可能是使用OpenSSL創建PKCS#12格式密鑰存儲區,然后使用keytool將其轉換為JKS密鑰商店。 通常, keytool期望自己進行密鑰對生成,因此私鑰將從一開始就存儲在那里。

在使用公鑰或證書加密消息或驗證簽名之前,應驗證公鑰或證書的完整性。 否則,攻擊者可以用他擁有的密鑰替換密鑰,並在中間充當人。 如果您只是從文件中讀取公鑰,則您不知道它確實屬於您的預期收件人。 但是,如果使用公鑰存儲基於密碼的消息身份驗證代碼,則可以確保它沒有被篡改。

證書的私鑰是否應該存儲在.jks keystone中?

是的,如果您擁有證書並將其存儲在那里。

如果是 - 這是什么輸入的? 使用keytool,它不需要創建一個jks文件。

這是因為您還可以將其用作信任庫,該信任庫僅包含受信任的證書。

在那里得到的私鑰,你需要首先它和它的證書轉換為使用PKCS#12文件openssl ,在這里許多問題如回答這個

如果不是 - jks文件的目的是什么? 為什么我的應用程序需要它而不是直接讀取證書?

因為您的應用程序還需要證書的私鑰。

為什么keytool需要密碼來創建一個jks,如果它只包含一個公鑰?

密鑰庫具有密碼,因為它是與安全相關的實體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM