【发布时间】:2012-10-29 20:26:20
【问题描述】:
我编写了一个 servlet 过滤器来为 Web 应用程序增加安全性。在某些情况下,我想验证与应用程序服务器的连接是通过双向 SSL (TLS 1.0) 建立的。通常这是通过HttpServletRequest.getAttribute("javax.servlet.request.X509Certificate") 完成的;但是,在我的情况下,应用程序服务器前面有一个反向代理,该代理通过WL-Proxy-Client-Cert 标头将客户端证书传递给应用程序服务器。因此,当我检索上述属性时,我得到了最初出现在标头中的客户端证书。我要做的不仅是验证客户端证书,还要确保反向代理和应用程序服务器之间的连接受到双向 SSL 的保护。有没有办法让我从 servlet 进行此验证?我正在使用 WebLogic 10.3.4、Java EE 5。将 WebLogic SSL 端口配置为需要双向 SSL 不是一种选择,因为同一台服务器上的一些其他服务只需要单向 SSL。
【问题讨论】:
-
您的应用服务器的所有连接都来自反向代理吗?如果是这样,您可以在应用服务器上要求双向 SSL。从浏览器到代理的某些连接可能不使用双向 SSL,但您可以确保从代理到应用服务器的所有连接都使用。
-
嗯,实际上有两个反向代理(面向两个不同的供应商):一个代理通过单向 SSL 连接,另一个通过双向 SSL。我已经提出让两个代理都使用双向 SSL 连接到应用程序服务器的想法,但这个想法尚未被接受(目前)。除非必须,否则我们宁愿不管理额外的 SSL 证书。
标签: java servlets ssl weblogic x509