這是我所指的示例代碼。 https://sites.google.com/site/ssljavaguide/example-code/2-way-ssl如何編寫處理單向和雙向ssl的通用java客戶端?
我不能設置密鑰庫相關的屬性,並等待被拋出一些異常,然後根據異常的發生,決定它是否是一個1路或2路SSL連接?
道歉,如果這個問題似乎很愚蠢。
這是我所指的示例代碼。 https://sites.google.com/site/ssljavaguide/example-code/2-way-ssl如何編寫處理單向和雙向ssl的通用java客戶端?
我不能設置密鑰庫相關的屬性,並等待被拋出一些異常,然後根據異常的發生,決定它是否是一個1路或2路SSL連接?
道歉,如果這個問題似乎很愚蠢。
服務器請求客戶端證書(如果未請求,客戶端無法發送)。
只有當服務器發出這樣的請求時,纔會使用您的客戶機密鑰庫。如果未請求客戶端證書,則設置密鑰庫不是問題:它不會被使用。副作用是客戶會在需要時發送合適的證書。如果您需要更多控制權,您需要自定義KeyManager
。
感謝您的回答。我還需要做一些UI更改,具體取決於SSL是兩種方式還是一種方式。如果是雙向的,我打算建立一個用戶界面,列出給定密鑰庫中的證書,以便用戶可以選擇證書想要呈現。那麼,有沒有一種方法可以檢測出ssl是單向還是雙向 – user2882198
如果您想要某個用戶,您可能會對[this](http://stackoverflow.com/a/9182713/372643)感興趣相互作用。您可能遇到的問題是,keymanager的一些UI回調可能會導致延遲,因此這可能會在握手期間導致超時,因此您可能必須再次建立連接,具體取決於用戶在UI中選擇的內容第一次。 (這取決於用戶選擇需要多長時間。) – Bruno
如果發生鏈接腐爛,您可以將代碼添加到問題中嗎? – fvrghl