當我使用https登錄到我的銀行帳戶時,在輸入我的登錄信息之前,它只是服務器端的SSL驗證。我的瀏覽器在SSL會話期間根據來自服務器的證書信息進行服務器認證。我不需要手動導入服務器證書作爲我的瀏覽器中的可信證書。它只是在SSL交換期間的運行時發生。PKI證書導入
另一方面,我還看到了一些應用程序,當您查看他們的安裝指南時,必須手動導入證書(例如,使用keytool)。
問題是:如果在SSL會話開始時交換了證書信息,則每一方都有足夠的信息來驗證另一方的身份。爲什麼某些應用程序需要在客戶端和服務器之間手動導入彼此的證書。無論是雙方認證還是雙方認證。
基於以下回復的其他信息: 我指的是我安裝基於客戶端 - 服務器模型的商業軟件並且客戶端SSL認證已打開的場景。我在機器A上安裝了服務器,在不同的機器上安裝了2個客戶機,這些都在我的專用網絡中。在安裝過程中,服務器在本地生成自簽名證書。所以2個客戶也是如此。一旦安裝完成,我被要求將客戶的證書複製到服務器機器,並手動將它們作爲可信證書導入。另外,將服務器證書複製到客戶端計算機,並將其導入其可信存儲區。他們在java keytool之上提供了一個包裝工具來執行證書導入。 爲什麼在這裏需要手動導入?客戶端和服務器無論如何都將在SSL握手期間交換證書信息並執行身份驗證。再次,這些是自簽證書和CA所涉及的。
夠公平的。但在我解釋的場景中,只有SSL客戶端身份驗證已打開。有什麼需要將服務器證書導入客戶端?您只需將客戶端證書導入服務器。 – tushima 2011-04-24 08:55:08
@tushima在SSL中,始終需要和驗證服務器證書。只有客戶端證書是可選的。如果服務器證書未通過驗證,則中間的人可以模擬服務器。 – 2011-04-24 09:02:28
太棒了。感謝您提醒我SSL基礎知識! – tushima 2011-04-24 09:18:07