【发布时间】:2011-06-23 17:32:22
【问题描述】:
我们开发了一个基于 Web 的 Java 应用程序,该应用程序在 Windows 2008 上的 IIS 下的 Tomcat 中运行。该网站在 IIS 中启用了 2-way(相互)SSL,要求客户端使用 x.509 证书 (PKI) 作为 SSL 的一部分进行身份验证这适用于我们所有使用 IE 的证书。
该网站还有一个名为 ViewOne ImageViewer 的 java 小程序。这适用于带有我们的一些证书的 2-way SSL,但对于其他人,在用户选择其身份验证证书后,在 SSL 握手期间,我们在客户端 (java 1.6) 上遇到异常:
安全性:KeyUsage 不允许 数字签名
证书之间最明显的区别是 EKU(扩展密钥使用)在失败的证书上不存在。有效的证书具有 EKU“客户端身份验证 - 1.3.6.1.5.5.7.3.2”。
有谁知道运行 java 小程序是否需要 EKU 1.3.6.1.5.5.7.3.2 或者是否可以在某处设置? 或者错误可能是因为其他原因?
谢谢!
【问题讨论】:
-
您能否澄清您所说的谈论工作/失败证书时的意思。这里涉及到 3 个证书:一个在服务器上,一个在客户端,一个用于小程序的签名。
-
很抱歉给您带来了困惑。我说的是客户端证书,它们都来自同一个 CA。如果我使用客户端证书 A,它可以正常工作,但如果我使用客户端证书 B,它不会。它们之间的区别似乎是 EKU,但也许这是我缺少的其他东西。我试图找出为什么存在差异,以及是否有某种方法可以配置 java 以关心与 IE/Windows 相同的证书属性。客户端证书放置在最终用户的智能卡上,不易更换。
标签: iis-7 ssl applet x509certificate pki