Ssl

使用 SSL 證書進行身份驗證——一般問題

  • March 5, 2010

使用證書的 SSL 客戶端身份驗證——這是一個複雜的話題,我認為我學到的知識足以讓它變得更加複雜。

這是我的基本理解:公鑰和私鑰是由證書頒發機構生成的。此資訊可以保存在“證書”中,然後由客戶端用於身份驗證。

為什麼可以有沒有私鑰的證書?我知道,如果從 Windows 證書商店導出證書,您可以在沒有私鑰的情況下導出它。如何使用沒有私鑰的證書?我一直認為,如果您要將其轉移到另一台電腦/設備上使用,則兩者都需要。

如果公鑰和 CA 已知,是否可以隨時請求私鑰?

公鑰和私鑰由證書頒發機構生成。

您可以選擇允許證書頒發機構為您生成私鑰,但您不必這樣做。您可以在自己的系統上生成私鑰,然後向證書頒發機構送出證書籤名請求。證書頒發機構不需要知道您的私鑰。如果您真的對安全性感到偏執,您不應該讓他們為您生成私鑰。

此資訊可以保存在“證書”中,然後由客戶端用於身份驗證。為什麼可以有沒有私鑰的證書?

對於驗證您的密鑰是否有效的服務,他們需要信任生成您的證書的證書頒發機構的根密鑰,或者他們需要您的證書副本以及密鑰的公共部分。對您進行身份驗證的服務不需要您的私鑰。

如何使用沒有私鑰的證書?

某些服務可能不想信任 CA 頒發的每個密鑰。因此,他們可能希望保存您的密鑰的公開版本,以便他們知道您就是您。當然,如果他們信任 CA 將有效資訊放入主題中,那麼

如果公鑰和 CA 已知,是否可以隨時請求私鑰?

如果您只有公鑰,則永遠不可能檢索到私鑰。

如果您允許您的 CA 為您生成您的私鑰,並且他們將私鑰保存在他們的系統上並且安全性較弱,我猜 CA 可能會受到攻擊並檢索到私鑰。密鑰的公共部分將包含有關 CA 的資訊。不過,這些似乎不太可能。

引用自:https://serverfault.com/questions/119356