将带有自签名证书的请求发送到后端

时间:2017-04-03 18:17:34

标签: haproxy

Haproxy文档(http://cbonte.github.io/haproxy-dconv/1.7/intro.html#3.3.2)列出了一个基本功能:

  

使用后端服务器进行身份验证后端服务器实际上是连接到它的预期haproxy节点

我一直试图做到这一点而且一直无法做到。所以这就是问题:

如何使用自签名证书向后端发送请求以进行身份​​验证。 uses此后端的前端请求只是http。

这是我的haproxy.cfg文件:

global
    maxconn 4096
    daemon
    log 127.0.0.1 local0

defaults
    log     global
    option  dontlognull
    retries 3
    option redispatch
    maxconn 2000
    timeout connect 5s
    timeout client  15min
    timeout server  15min

frontend public
    bind *:8213
    use_backend api if { path_beg /api/ }
    default_backend web

backend web
    mode http
    server blogweb1 127.0.0.1:4000

backend api
    mode tcp
    acl clienthello req.ssl_hello_type 1

    tcp-request inspect-delay 5s
    tcp-request content accept if clienthello

    server blogapi  127.0.0.1:8780

1 个答案:

答案 0 :(得分:0)

我最终开始工作了。我相信让我失望的事实是,在做了haproxy -f <configFile> -st后,它并没有像我想象的那样关闭这个过程。所以,我的更改/更新都没有。我kill -9数十个haproxy服务并重新命令(haproxy -f),现在它正在工作。

现在,这是一个假设,虽然我非常有信心。我仍然会提出我的最终配置,万一有人会从这里收集一些东西。我用了https://www.haproxy.com/doc/aloha/7.0/deployment_guides/tls_layouts.html。该链接回答了我的问题&#34;您如何使用ssl&#34;对后端进行身份验证?就像文档说你可以。

global
    maxconn 4096
    daemon
    log 127.0.0.1 local0

defaults
    log     global
    option  dontlognull
    retries 3
    option redispatch
    maxconn 2000
    timeout connect 5s
    timeout client  15min
    timeout server  15min

frontend public
    bind *:443
    mode http
    use_backend api if { path_beg /api/ }

backend api
    mode http
    option httplog
    server blogapi  127.0.0.1:4430 ssl ca-file <caFile.Pem> crt <clientCert.pem> verify required