<proxy>部分中的SSLProxyProtocol指令

时间:2018-06-27 09:11:05

标签: apache

我正在尝试为LoadBalancers上的运行状况检查设置SSL设置。 根据{{​​3}},SSLProxy *-指令应在Proxy-部分内运行。因此,我想做的是以下操作(我忽略了不重要的配置内容):

  <VHost ...>
    SSLProxyEngine on
    <Proxy balancer://mybalancer>
      SSLProxyProtocol [a protocol]
      SSLProxyCipherSuite  [a cipher suite]
      BalancerMember https://www.backend1.com hcinterval=1 hcmethod=get hcuri=/healthcheck1.php
      BalancerMember https://www.backend2.com hcinterval=1 hcmethod=get hcuri=/healthcheck2.php
   </Proxy>
  </VHost>

像这样的SSLProxyProtocol和SSLProxyCipherSuite对健康检查没有影响,但对正常请求没有影响。

如果我将指令提升到VHost级别,则会使用正确的设置执行运行状况检查:

  <VHost ...>
    SSLProxyEngine on
    SSLProxyProtocol [a protocol]
    SSLProxyCipherSuite  [a cipher suite]
    <Proxy balancer://mybalancer>
      BalancerMember https://www.backend1.com hcinterval=1 hcmethod=get hcuri=/healthcheck1.php
      BalancerMember https://www.backend2.com hcinterval=1 hcmethod=get hcuri=/healthcheck2.php
   </Proxy>
  </VHost>

但是我需要的是针对不同LoadBalancers的不同SSL / TLS设置。 我正在使用Apache 2.4.33版。

我想知道是否有人遇到相同的问题,或者有人是否能够成功设置这样的配置?

1 个答案:

答案 0 :(得分:0)

感谢Yann和Armin在此方面的帮助。它可以与此错误报告中提供的补丁一起使用:

https://bz.apache.org/bugzilla/show_bug.cgi?id=62556#c6

(您只需要附件36043,其他补丁是错误的/不需要的!)

如此处所讨论的,问题是平衡器成员的worker没有正确初始化。这就是为什么我们必须至少设置一个代理参数的原因。

如果我们像下面那样扩展上面的Proxy balancer://定义,它将起作用:(当然,在补丁之后):

<Proxy balancer://mybalancer2 lbmethod=byrequests> 

我们可以在此处采用任何lb参数,并且可以轻松将其设置为默认值。 (lbmethod = byrequests是默认设置,因此,除非正确初始化了worker,否则什么都不会改变。)

上面的完整的有效示例:

<VHost ...>
    SSLProxyEngine on
    ProxyPass "/"  "balancer://mybalancer"
    ProxyPass "/2"  "balancer://mybalancer2"
    <Proxy balancer://mybalancer lbmethod=byrequests>
      SSLProxyProtocol [a protocol]
      SSLProxyCipherSuite  [a cipher suite]
      BalancerMember https://www.backend1.com hcinterval=1 hcmethod=get hcuri=/healthcheck1.php
      BalancerMember https://www.backend2.com hcinterval=1 hcmethod=get hcuri=/healthcheck2.php
   </Proxy>
    <Proxy balancer://mybalancer2 lbmethod=byrequests>
      SSLProxyProtocol [another protocol]
      SSLProxyCipherSuite  [another cipher suite]
      BalancerMember https://www.backend3.com hcinterval=1 hcmethod=get hcuri=/healthcheck1.php
      BalancerMember https://www.backend4.com hcinterval=1 hcmethod=get hcuri=/healthcheck2.php
   </Proxy>
</VHost>

该修补程序应包含在下一个版本中,可能约为2.4.35