2016-07-27 117 views
0

如果我在服務器唯一身份驗證中正確理解SSL/TLS,握手後,服務器將客戶端的公鑰和由CA簽名的數字簽名證書發送給客戶端。如果客戶端擁有此CA的公鑰,它可以解密證書並與服務器建立信任關係。如果它不信任CA,則通信停止。在客戶端需要向服務器進行身份驗證的雙向SSL中,在客戶端收到公鑰和數字簽名證書後,客戶端將通過公鑰和數字簽名證書發送服務器。服務器將檢查它是否具有用於客戶證書的公鑰並且如果它具有與客戶建立信任關係。我正在weblogic服務器上設置雙向身份驗證[在這種情況下,客戶端向Web服務發出呼叫],第三方向我發送了數字簽名證書和證書鏈。爲什麼我需要這些。這不是握手後服務器回覆的內容嗎?2路SSL/TLS配置

回答

0

服務器向客戶端發送它的公鑰和由CA簽名的數字簽名證書。

證書包含公鑰。鑰匙不會額外發送。

如果客戶有這個CA的公鑰,它可以解密證書

證書是不加密的,它是由CA簽署。因此,如果客戶端具有CA的證書(並且因此其公鑰),則不進行解密,但客戶端可以驗證該簽名。但通常,證書不是由瀏覽器信任的CA直接簽署,但存在中間證書。在這種情況下,服務器不僅會發送服務器證書,還會發送構建trust chain所需的所有中間證書。

然後客戶端將通過它的公鑰和數字簽名證書發送服務器。

此外,公鑰是證書的一部分。

第三方向我發送了數字簽名證書和證書鏈。爲什麼我需要這些。

第一個證書是客戶端證書。建立trust chain需要鏈式證書,因爲服務器不直接信任客戶端證書的頒發者CA,因此需要中間證書。

+0

謝謝steffen,我看到我誤解了證書的處理方式。如果服務器向客戶端發送證書[服務器和中間件]作爲握手的一部分,爲什麼我需要第三方發給我的證書?這些需要進入信託商店建立信任嗎?如果是這樣,爲什麼我需要將它們存儲起來,如果它們是通過握手發送的?我感謝您的幫助。 –

+0

@BartStough:服務器將證書和與服務器證書相匹配的鏈發送給客戶端。客戶端將其證書和與客戶端證書匹配的鏈發送到服務器。這些可以是不同的鏈。 –