首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Jetty和Null密码的双向SSL

使用Jetty和Null密码的双向SSL
EN

Stack Overflow用户
提问于 2012-07-28 09:07:17
回答 1查看 1.9K关注 0票数 0

我在Jetty中运行了一个应用程序。在它前面,我有一个负载均衡器。要求由负载均衡器执行SSL解密,而web容器仅执行SSL客户端身份验证。

其原理是负载均衡器在解密内容方面非常有效,并且可以这样做,并以简单的方式将其传递到web容器。

你知道如何实现这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-28 09:49:19

不清楚你在标题中所说的"Null Cipher“是什么意思。有3 possible candidatesTLS_NULL_WITH_NULL_NULLTLS_RSA_WITH_NULL_MD5TLS_RSA_WITH_NULL_SHA。第一个不执行任何身份验证,它们都不提供任何加密。它们对你的目标肯定是无用的。在浏览器和负载均衡器之间使用普通密码套件(包括身份验证和加密)。负载均衡器和工作节点之间的加密通常是可选的,只有当您不信任它们所在的网络时才需要加密(这将是一个完全不同的SSL/TLS连接,并且与终端浏览器完成的客户端证书身份验证无关)。

只有SSL/TLS服务器可以请求(和验证)客户端证书身份验证。在这种情况下,这将是负载均衡器。

如果您希望由负载均衡器处理SSL/TLS流量,它应该验证证书(假设是针对您配置的CA ),然后将证书信息中继到工作节点。

如何做到这一点将取决于负载均衡器。如果是Apache Httpd服务器,mod_proxy_ajp将通过AJP协议(SSLOptions +ExportCertData +StdEnvVars)中继客户端证书。如果需要,mod_jk还能够中继完整的客户端证书链(JkOptions +ForwardSSLCertChain)。

如果你想使用mod_proxy_http,一个诀窍是通过一个超文本传输协议报头(mod_header)传递证书,使用类似RequestHeader set X-ClientCert %{SSL_CLIENT_CERT}s的东西。如果这个头来自客户端的浏览器,你应该确保它被清除(否则谁会伪造它)。在这种情况下,您需要编写一个过滤器作为Jetty服务器的一部分来处理标头,并将其放入javax.servlet.request.X509Certificate HttpServletRequest属性(它应该是一个X509Certificate数组)。在此之后,您应该或多或少处于与AJP相同的阶段。如果其他负载均衡器能够以类似的方式填充HTTP标头,这也可以与它们一起工作。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11697383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档