Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache HTTP服务器反向代理发送SNI吗?_Apache_Reverse Proxy_Sni - Fatal编程技术网

Apache HTTP服务器反向代理发送SNI吗?

Apache HTTP服务器反向代理发送SNI吗?,apache,reverse-proxy,sni,Apache,Reverse Proxy,Sni,我想使用ApacheHTTP服务器作为OpenShift或Kubernetes中托管的一组微服务的反向代理。 我想在Kubernetes路线上使用TLS通道。i、 e.需要在Apache出站处创建TLS连接,并在pod处终止。 为了实现这一点,OpenShift需要在不解密有效负载的情况下识别目标主机,以便将每个请求转发到正确的微服务。 TLS中的服务器名称指示SNI将具有主机名。 我尝试使用基于Apache的IBMHTTP服务器IHS。但是,IBM HTTP Server不会在出站TLS连接中

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

我将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时的配置

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在两个字符之间的最末端

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**.........

好运

这是由OpenSSL版本和配置定义的,而不是由Apache定义的。你知道我在哪里可以找到关于配置SNI的OpenSSL文档吗?我已经在谷歌上搜索了好几天,还没找到运气。只能在Apache的入站端找到有关SNI的信息。也许OpenShift可以侦听多个端口,每个端口将专用于一个微服务?不,不幸的是OpenShift通常侦听80HTTP和443HTTPS。如果我们试图为不同的微服务打开不同的端口,那么我相信我们首先失去了拥有OpenShift/Kubernetes架构的目的。