我正在尝试编写一个简单的应用程序,以了解基于客户端和服务器证书配置身份验证的基础知识。如何验证配置相互认证(客户端证书,服务器证书)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