2013-06-20 14 views
0

我的web應用程序通過預身份驗證(每個請求都包含服務器用於驗證請求的客戶端證書)對用戶進行身份驗證。客戶端證書系統中可能出現的性能瓶頸

設置:Apache Web服務器,Tomcat應用服務器,mod_jk連接

  1. 客戶端命中Apache服務器,選擇一個證書
  2. SSL握手開始,在客戶端瀏覽器驗證服務器的證書,以及服務器確保客戶的passed-在證書有效期
  3. 一旦SSL建立,服務器通過SSL_CLIENT_CERT到Tomcat認證

編輯:

另外,用戶的客戶端證書檢查證書撤銷列表(CRL)。

是否需要額外的時間下載CRL或CRL Delta,然後檢查客戶端的證書是否已被撤銷可能需要耗費時間?

回答

1

當然,但它不會像您想象的那樣頻繁發生。服務器幾乎可以肯定地緩存CRL,並且不會像一個小時那樣重新獲取它,並且由於(1)HTTP保持活動和(2)SSL,您的前提是客戶端證書隨每個請求一起發送也是不正確的會話緩存,可以在服務器上配置相同的SSL會話,可能需要10-15分鐘,也可能是一個小時,甚至一天。

+0

使用ActivClient(讀卡軟件),當我打開我的網頁時,它會多次閃爍在任務欄上,即多個HTTP請求。據我工作的另一位sw開發人員說,他說當它讀取卡的憑證時它就會閃爍。無論何時讀取憑證,它都會增加延遲(每個請求可能大約1秒鐘)。 –

+0

什麼是客戶端軟件?瀏覽器?你的代碼? – EJP

+0

據我所知,因爲我使用的是Spring Security預認證,所以每個請求都經過認證,即每個請求都已經過認證。 Spring Security只是從HTTP請求中獲取用戶/主體。並非所有的HTTP請求都需要完整的客戶端證書,但是其中的相當一部分都是。因此,我相信答案是「我的代碼」。 –