使用 certbot 将 SSL 证书添加到 HAProxy

使用 certbot 将 SSL 证书添加到 HAProxy

我正在尝试配置我的 Nginx 服务器作为我的主要负载均衡器。我已经使用 certbot 完成了必要的软件包安装,但当我尝试配置 haproxy.cfg 文件时,问题出现了。

所有默认的 haproxy 配置均保持不变,因此我添加了这些行

frontend www-https-frontend
    bind *:80
    bind *:443 ssl crt /etc/letsencrypt/archive/www.example.tech/fullchain.pem
    http-request redirect scheme https unless { ssl_fc }
    http-request set-header X-Forwarded-Proto https

    default_backend www-backend

backend www-backend
    balance roundrobin
    server web-01 54.90.15.228:80 check
    server web-02 35.153.66.157:80 check

但是当我运行 sudo haproxy -c -f /etc/haproxy/haproxy.cfg 时,出现此错误:

[NOTICE]   (70084) : haproxy version is 2.5.14-1ppa1~focal
[NOTICE]   (70084) : path to executable is /usr/sbin/haproxy
[ALERT]    (70084) : config : parsing [/etc/haproxy/haproxy.cfg:39] : 'bind *:443' : unable to stat SSL certificate from file '/etc/letsencrypt/archive/www.codingbro.tech/fullchain.pem' : No such file or directory.
[ALERT]    (70084) : config : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT]    (70084) : config : Fatal errors found in configuration.

生成证书时,他们提供了完整链的确切路径/etc/letsencrypt/archive/www.example.tech/fullchain.pem。任何帮助将非常感激

答案1

一般来说,您不应该使用存档目录。当前的 ssl 文件是符号链接的,因此应该使用它。对于 nginx,我认为 cfg 语句是:

ssl_certificate     /etc/letsencrypt/live/www.example.tech/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.example.tech/privkey.pem

恐怕我不知道 haproxy 的等价物是什么。

相关内容