有沒有一種方法可以讓java web應用通過http請求獲取安裝在計算機上的安全證書的信息,並在機器上安裝特定證書時有選擇性地授予訪問權限。基於證書和IP的身份驗證
基本上,要求是,網絡應用程序應該只從公司的筆記本電腦接受請求,否則必須使用適當的錯誤文本拒絕訪問。
(這些可以贏得筆記本電腦與安裝在自己的機器上一定的榮譽證書,也可以是由一組特定的靜態IP地址的)。
有沒有一種方法可以讓java web應用通過http請求獲取安裝在計算機上的安全證書的信息,並在機器上安裝特定證書時有選擇性地授予訪問權限。基於證書和IP的身份驗證
基本上,要求是,網絡應用程序應該只從公司的筆記本電腦接受請求,否則必須使用適當的錯誤文本拒絕訪問。
(這些可以贏得筆記本電腦與安裝在自己的機器上一定的榮譽證書,也可以是由一組特定的靜態IP地址的)。
是的,這是可能使用HTTPS客戶端證書。確切的設置和配置取決於您的應用程序服務器和特定要求,但常見的情況是您創建公司內部CA(證書頒發機構)來頒發可能僅限於特定客戶端IP地址的客戶端證書,並配置您的應用程序服務器HTTPS連接器需要客戶端證書並信任由您自己的CA頒發的證書。
正確的配置已經完成後,客戶端證書(S)是通過servlet請求屬性是由/可用於網絡應用程序:
X509Certificate[] certificates = (X509Certificate[])
request.getAttribute("javax.servlet.request.X509Certificate");
正如jambjo說 - 你絕對可以讓客戶端證書通過HTTPS進行客戶端身份驗證,如他所述。我建議通過靜態IP,證書很難欺騙,如果您將來需要以不同方式重新配置網絡,則允許更靈活。
一對夫婦其他的想法:
感謝您的詳細信息lakshmi。遵循你所說的話,我想在我的本地創建一個poc。我有tomcat和glassfish(與netbeans)。現在看來我需要很多進一步的信息才能在這方面取得進展! a)如何爲我的測試目的創建證書。 b)如何在我的個人筆記本電腦上安裝該軟件。 c)我不認爲我上面提到的服務器支持HTTPS,所以任何已知的開源解決方案呢? d)此外,我將不得不找出如何將證書添加到服務器,最終終止這個poc。 (稍後我會保留這個問題) – frappuccino 2009-12-26 15:30:19
讓我們看看... a)OpenSSL是一個讓您創建自簽名證書的工具。你也可以用它做一個測試CA. b)你需要生成一個密鑰對的證書。我知道Open SLL將允許PKCS12格式。從那裏,大多數瀏覽器都有一個證書上傳過程。 c)tomcat絕對不會HTTPS,http://tomcat.apache.org/tomcat-4.0-doc/ssl-howto.html。如果Glassfish沒有這樣做,我會感到驚訝。當您啓動服務器時,您需要設置「客戶端身份驗證」。 d)服務器需要CA證書而不是最終實體。通常是一個固定而忘記的操作。 – bethlakshmi 2009-12-28 21:42:40