我正在嘗試編寫一個簡單的應用程序,以瞭解基於客戶端和服務器證書配置身份驗證的基礎知識。如何驗證配置相互認證(客戶端證書,服務器證書)Java EE的正確性?
我所做的一切,因爲它是在java的EE 5,Java EE的解釋6個教程 http://docs.oracle.com/javaee/6/tutorial/doc/glien.html
-
從JavaEE的教程
- 打開示例Hello basicauthorization(只是簡單的servlet只能認證後,可以訪問),然後重新配置它的客戶端證書,而不是基本的授權
- 配置的web.xml
- 配置與GlassFish的web.xml
- 生成的客戶端證書
- 導入的客戶端證書,以便服務器信任它。
問題:
當我部署我的應用程序,並按照鏈接,對應的應用程序,我從GlassFish服務器的HTTP狀態400消息 - 未在此請求」客戶端證書鏈
所以,現在看來,客戶端(瀏覽器)不要求
我嘗試添加的.cer證書到Chrome瀏覽器,火狐,IE發送證書和它們加入(未顯示錯誤),但正如你所看到的那樣,
因此,問題是:
如何通過具有客戶端.cer證書的Web瀏覽器訪問我的應用程序?
因此,問題是「瀏覽器沒有任何東西可以提供 - 它沒有任何私鑰+由可接受的ca發佈的證書」。如何讓瀏覽器使用我生成的證書? – Ievgen 2012-04-12 08:47:39
在IE中,您可以選擇* container *作爲證書 - 您必須選擇「個人證書」(類似這樣的)。你確定服務器在詢問你的證書嗎? – 2012-04-12 08:50:04
不確定。爲了讓服務器信任我的證書,我使用了這個命令:java-home \ bin \ keytool -import -v -trustcacerts -alias client -alias -file client.cer -keystore domain-dir/config/cacerts.jks -keypass changeit -storepass changeit,因爲它是在這裏提出的:http://docs.oracle.com/javaee/6/tutorial/doc/glien.html – Ievgen 2012-04-12 08:52:39