在haproxy中设置基本身份验证后无法访问网站

在haproxy中设置基本身份验证后无法访问网站,proxy,kibana,reverse-proxy,haproxy,Proxy,Kibana,Reverse Proxy,Haproxy,我正在尝试在运行https的kibana服务前面设置基本身份验证。从文档和其他在线资源中我了解到,我需要创建一个具有凭据的用户列表。这是我做的。在前端部分,我创建了两个ACL,其中一个检查使用http_auth来验证凭据(或者让我相信)。然后我说,如果两个ACL要求都满足(即正确的地址和正确的凭据),则使用正确的服务器 运行一个curl-u管理员:terriblePassw0rdhttps://example.com我有一辆404。我非常感谢任何关于修复什么或在哪里进一步查看的指针或指导方针 谢

我正在尝试在运行https的kibana服务前面设置基本身份验证。从文档和其他在线资源中我了解到,我需要创建一个具有凭据的用户列表。这是我做的。在前端部分,我创建了两个ACL,其中一个检查使用http_auth来验证凭据(或者让我相信)。然后我说,如果两个ACL要求都满足(即正确的地址和正确的凭据),则使用正确的服务器

运行一个
curl-u管理员:terriblePassw0rdhttps://example.com
我有一辆404。我非常感谢任何关于修复什么或在哪里进一步查看的指针或指导方针

谢谢你抽出时间

userlist userAuth
    user admin insecure-password terriblePassw0rd

frontend default-frontend-hpp
    bind :80
    http-request redirect location https://example.com code 302 if { hdr_dom(host) -i example.com }

frontend default-frontend-https
    bind :443 ssl crt /path/to/cert/example.pem
    reqadd X-Forwarded-Proto:\ https

    acl auth_check http_auth(userAuth)
    acl example hdr(host) -i example.com
    use_backend example-backend if example auth_check

backend example-backend
    server name IP:port check

因为它是
404
而不是
503
,所以基本auth应该可以工作

但你可能想改变

acl auth_check http_auth(userAuth)
acl example hdr(host) -i example.com
use_backend example-backend if example auth_check


这样,如果您没有提供正确的用户/通行证,您将得到
403
,如果身份验证失败,这比第一个中的
503
要好。

我最终找到的解决方案是将身份验证检查移到后端。所以现在看起来像:``后端示例后端acl验证检查http验证(userAuth)http请求验证领域服务器名,除非验证检查服务器名IP:端口检查`
acl auth_check http_auth(userAuth)
http-request deny unless auth_check
acl example hdr(host) -i example.com
use_backend example-backend if example