未在运行状况检查请求中设置SNI扩展(Apache v.2.4.35)

时间:2018-10-16 11:03:51

标签: apache load-balancing httpd.conf mod-proxy mod-ssl

我遇到的问题是,未在使用TLS加密的后端健康检查请求上设置SNI扩展。由于健康检查为阴性,因此导致普通请求也被拒绝。

Apache 2.4.35版

在后端服务器上,我出现以下错误:

AH02033: No hostname was provided via SNI for a name based virtual host

我也已经用Wireshk进行了调查,但绝对没有设置该退出方式。

我的配置如下:

Listen 127.0.0.1:443
ServerName www.localhost.com

<VirtualHost 127.0.0.1:443>
    ServerName www.localhost.com
    ServerAlias localhost.com
    SSLCertificateFile /etc/httpd/ssl/ca.crt
    SSLCertificateKeyFile /etc/httpd/ssl/ca.key
    SSLEngine on
    SSLProxyEngine on

    ProxyHCExpr isok {%{REQUEST_STATUS} =~ /^[23]/}
    ProxyHCTemplate template hcinterval=5 hcexpr=isok hcmethod=get hcuri=/healthcheck.php

  <Proxy balancer://mycluster lbmethod=byrequests>
    BalancerMember https://127.0.0.1:8443
    BalancerMember https://127.0.0.1:8444
    ProxyPreserveHost On
    SSLProxyProtocol  TLSv1
  </Proxy>

  <Location />
    ProxyPass  balancer://mycluster/
    ProxyPassReverse  balancer://mycluster/
  </Location>
</VirtualHost>

我已阅读到ProxyPreserveHost应该处于“ on”状态,但这不能解决问题。 我是否缺少某些东西,或者这最终是否是mod_proxy_hcheck中的错误? 在此先感谢您的帮助/想法!

1 个答案:

答案 0 :(得分:0)

此问题已通过官方错误报告中提供的补丁解决:

https://bz.apache.org/bugzilla/show_bug.cgi?id=62837