Ssl
我可以通過擴展密鑰用法限制對 Tomcat 的 SSL 訪問嗎?
我想使用證書限制對 Tomcat 實例的 SSL 訪問,而不依賴於任何“使用者”帳戶。
我有一個用於簽署證書的 CA,但是如果我將 Tomcat 配置為信任 CA,那麼它將信任由它簽名的任何人,而我希望限制更多,只允許我批准的證書特定用途(即,對於我在該伺服器上執行的應用程序)。
在我看來,這正是 X.509 的擴展密鑰使用部分的用途,我可以創建證書,並將該欄位定義為自定義值,但我不知道是否有任何方法可以製作 Tomcat請注意該欄位,並且只允許某些用法。有誰知道如何做到這一點?甚至 Apache httpd 的指針也會很有用,因為我可以在緊要關頭將 Tomcat 放在 https 前端之後。
這不能在 tomcat 中的 SSL 層使用extendedKeyUsage 完成。mod_ssl(來自 APR)僅允許您使用 SSLRequire 執行此操作,但由於這在伺服器範圍內無效,因此將被忽略。我認為非 APR 實現也不支持這一點,因為我根本沒有看到任何證據。
充其量,您可以自己在 servlet 中查看證書(假設它向您公開;我不知道該怎麼做),然後檢查那裡的擴展。
但是,您嘗試做的事情並不典型。這樣做的常用方法是創建自己的信任根(不要信任瀏覽器信任根或任何東西)並使用它來頒發客戶端證書。它們需要是客戶端證書(使用 clientAuth,如果是 v3,則需要相應的 EKU),但沒有其他特別之處。您有理由依靠 DN 來辨識使用者。