考慮Apache Tomcat 7.0
配置爲執行客戶端認證(連接器的參數clientAuth
設置爲true
)。配置Apache Tomcat 7.0以拒絕具有過期客戶端證書的連接
看起來,Tomcat信任默認過期的客戶端證書,它位於其可信存儲區(允許它們成功進行驗證)。
是否可以配置Apache Tomcat 7.0
不信任並自動拒絕這些過期的客戶端證書,即使它們位於其可信存儲中?
看來,這可以通過設置另一個trustManagerClassName
來實現,默認爲X509TrustManagerImpl
。但我不知道,默認算法是否真的允許過期的證書?應該使用現有的哪一個?或者我必須實施我自己的並把它放在tomcat
的庫裏?
UPD:我發現非常類似的問題:Java trustmanager behavior on expired certificates 但答案是沒有答案中的任何適當的解決方案。我正在尋找現有的更安全的X509TrustManager
實施,它將檢查證書到期。
只是爲了確認:您有一個包含過期證書的信任庫,並且Tomcat在客戶提交證書時仍繼續信任該證書?自上次啓動Tomcat以來,證書是否過期?您是否能夠從信託商店中刪除證書以撤消它? –
@ChristopherSchultz 1)是的,2)Tomcat可以在任何時候重新啓動,沒關係,3)不,我無法從信任存儲中刪除它。 – Andremoniy
您是否嘗試過使用'crlFile'來指定證書撤銷列表?我意識到X.509應該可以尊重證書的到期日期,但如果這不符合預期,這是一個選項。 –