gpt4 book ai didi

java - 如何从 servlet 验证连接是使用双向 SSL 建立的?

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:47 25 4
gpt4 key购买 nike

我编写了一个 servlet 过滤器来为 Web 应用程序增加安全性。在某些情况下,我想验证与应用程序服务器的连接是通过双向 SSL (TLS 1.0) 建立的。通常这是通过 HttpServletRequest.getAttribute("javax.servlet.request.X509Certificate") 完成的;然而,在我的情况下,应用服务器前面有一个反向代理,这个代理通过 WL-Proxy-Client-Cert header 将客户端证书传递给应用服务器。因此,当我检索上述属性时,我得到了最初出现在 header 中的客户端证书。我要做的是不仅要验证客户端证书,还要确保反向代理和应用程序服务器之间的连接是通过双向 SSL 保护的。我有办法从 servlet 进行验证吗?我正在使用 WebLogic 10.3.4、Java EE 5。将 WebLogic SSL 端口配置为需要双向 SSL 不是一种选择,因为同一服务器上的一些其他服务只需要单向 SSL。

最佳答案

无论客户端是 Web 浏览器还是您的反向代理,检查客户端证书都是一样的。只需获取 "javax.servlet.request.X509Certificate" 属性并检查它是否与您的反向代理匹配(基于 DN 或颁发者)。

WL-Proxy-Client-Cert 仅在应用服务器想知道向代理提交的客户端证书时才会发挥作用,在验证提交给应用服务器的证书是代理人。

关于java - 如何从 servlet 验证连接是使用双向 SSL 建立的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13129097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com