首页 > 解决方案 > Apache HTTP 服务器反向代理是否发送 SNI?

问题描述

我想将 Apache HTTP 服务器用作 OpenShift 或 Kubernetes 中托管的一组微服务的反向代理。我想在 Kubernetes 路由上使用 TLS 直通。即需要在 Apache(出站)处创建 TLS 连接并在 pod 处终止。为此,OpenShift 需要在不解密有效负载的情况下识别目标主机,以便它可以将每个请求转发到正确的微服务。TLS 中的服务器名称指示 (SNI) 将具有主机名。我尝试使用基于 Apache 的 IBM HTTP Server (IHS)。但是,IBM HTTP Server 不会在出站 TLS 连接中发送 SNI 信息。(由 IBM HTTP Server 和 OpenShift 之间的 mod 代理发起的连接)。OpenShift 引发错误。文档提到 IHS 在出站端不支持 SNI,即使在最新版本中也是如此。我试图找出最新的 Apache HTTP 服务器在配置为反向代理时是否可以在出站上发送 SNI 信息。我找不到任何明确提到这一点的文件。谢谢

标签: apachereverse-proxysni

解决方案


我将 Apache 配置为 SSL 反向代理,它似乎对 SNI 部分正常工作。尽管没有像您提到的那样清楚地记录在案。

我在跑 :

# /usr/local/httpd-2.4.29.tuned/bin/httpd -v
Server version: Apache/2.4.29 (Unix)
Server built:   Dec 24 2017 19:19:13
# openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

这是我转发到 www.stackoverflow.com 时的 conf

SSLEngine on
SSLProxyEngine on
SSLProxyCheckPeerCN Off
SSLSessionTickets on
SSLProxyVerify none
ProxyPreserveHost Off

<IfModule proxy_module>
  ProxyPass             /     https://www.stackoverflow.com/
  ProxyPassReverse      /     https://www.stackoverflow.com/
</IfModule>

这是一些 tcpdump,您可以在其中看到 SNI 在 2 * 字符之间的最后

20:27:06.506832 IP XXX.YYY.ZZZ.XXX.14685 > 8.8.8.8.53: 45945+ A? www.stackoverflow.com. (39)
stackoverflow.com......5./...y...........www
20:27:06.520988 IP 8.8.8.8.53 > XXX.YYY.ZZZ.XXX.14685: 45945 5/0/0 CNAME stackoverflow.com., A 151.101.1.69, A 151.101.65.69, A 151.101.129.69, A 151.101.193.69 (117)
stackoverflow.com.............._.................e.E.............eAE.............e.E.............e.E
20:27:06.521566 IP XXX.YYY.ZZZ.XXX.56781 > 151.101.1.69.443: Flags [S], seq 2876049156, win 14600, options [mss 1460,sackOK,TS val 941503620 ecr 0,nop,wscale 7], length 0
E..<3.@.@.u../?q.e.E.....m........9..y.........
8.4.........
20:27:06.535770 IP 151.101.1.69.443 > XXX.YYY.ZZZ.XXX.56781: Flags [S.], seq 3281327361, ack 2876049157, win 28960, options [mss 1460,sackOK,TS val 967826870 ecr 941503620,nop,wscale 9], length 0
E..<..@.<..q.e.E./?q.........m....q V..........
9...8.4....
20:27:06.535846 IP XXX.YYY.ZZZ.XXX.56781 > 151.101.1.69.443: Flags [.], ack 1, win 115, options [nop,nop,TS val 941503635 ecr 967826870], length 0
E..43.@.@.u../?q.e.E.....m.........s.q.....
8.4.9...
20:27:06.536252 IP XXX.YYY.ZZZ.XXX.56781 > 151.101.1.69.443: Flags [P.], seq 1:518, ack 1, win 115, options [nop,nop,TS val 941503635 ecr 967826870], length 517
E..93.@.@.s../?q.e.E.....m.........s.v.....
8.4.9................2.X.OQ.W..[. ...x...48.g....Z.....0.,.(.$...
.........k.j.i.h.9.8.7.6.........2...*.&.......=.5.../.+.'.#... .........g.@.?.>.3.2.1.0.E.D.C.B.1.-.).%.......<./.A.................E.........**www.stackoverflow.com**.........

祝你好运


推荐阅读