make java插件使用浏览器证书

时间:2011-01-02 17:28:05

标签: java ssl ssl-certificate

我们有一个java applet,它与运行在tomcat上的spring应用程序通信并使用spring的http调用者。

我们希望使用带有客户端身份验证的ssl保护applet,我们有一个用于登录的jsp页面,在成功登录applet加载后。

使用ssl保护jsp页面,当applet加载applet内的http调用者时,进行第二次握手显然与浏览器握手无关,好吧,我不介意,但是我想要java插件来使用浏览器证书和客户端证书但不是,我必须使用java ControlPanel将客户端证书加载到java插件,如果我的服务器证书是自签名的,那么我必须将服务器证书加载到java ControlPanel并且nrowser。

另一件事是当applet开始加载时,java插件弹出一个询问客户端密钥库密码的对话框,我想避免这种情况。

总而言之:我希望java插件能够使用浏览器的可信证书和客户端证书,并避免弹出密钥库密码对话框。

我已经用Google搜索了两天,但却找不到任何有关如何实现这一目标的线索。

我将不胜感激。

我正在使用jdk 1.6.0 u23和firefox 3.6.13。

2 个答案:

答案 0 :(得分:1)

Java有自己的keystore数据库,它拥有这些客户端证书,由3个变量控制;

-Djavax.net.ssl.keyStore=<client_keystore_file_path>
-Djavax.net.ssl.keyStorePassword=<password to access the client keystore file>
-Djavax.net.ssl.keyStoreType=<keystore_type>
例如

;

-Djavax.net.ssl.keyStore=c:\certs\client.pfx
-Djavax.net.ssl.keyStorePassword=test
-Djavax.net.ssl.keyStoreType=pkcs12

为了能够使用它,你必须使用keytool程序(JRE / JDK附带)来转换&amp;将客户端证书添加到密钥库中,here就是如何执行此操作的示例。

答案 1 :(得分:1)

Java插件文档说applet可以访问浏览器密钥库:

http://www.java.net/external?url=http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment-guide/keystores.html

但不幸的是,文档很少,我从未尝试过。

祝你好运,如果你找到它,可以在这里发布你的解决方案!