我的 HAProxy 配置中有硬编码的文件路径:
defaults
errorfile 400 /etc/haproxy/errors/400.http
frontend https
bind *:443 ssl crt /etc/ssl/private/wildcard.example.com.cer
我想在 Docker 容器中验证文件(在本地或在 CI/CD 管道中执行)。但是,找不到这两个文件:
haproxy@56dad58e757b:/usr/src/app$ haproxy -f my_config.cfg -c
[NOTICE] (32) : haproxy 版本为 2.6.5-987a4e2
[NOTICE] (32) : 可执行文件路径为 /usr/local/sbin/haproxy
[ALERT] (32) : config : 解析 [my_config.cfg:38] : errorfile : 打开文件 '/etc/haproxy/errors/400.http' 时出错。
[ALERT] (32) : config : 解析 [my_config.cfg:93] : 'bind *:443' 在 'frontend' 部分中 : 无法从文件 '/etc/ssl/private/wildcard.example.com.cer' 统计 SSL 证书 : 没有该文件或目录。
/etc/haproxy/errors/400.http
在 Ubuntu 下运行 HAProxy 时是正确的。但在这里找不到,因为 HAProxy 配置路径/usr/local/etc/haproxy
在官方 Docker 镜像。
1.) 是否有一个指向 HAProxy 的配置目录的变量,这样就可以写类似这样的内容?
defaults
errorfile 400 $CONF_DIR/errors/400.http
第二个问题是缺少证书(/etc/ssl/private/wildcard.example.com.cer
)。显然我不想将其存储在本地机器上。
2.) 有没有办法“伪造”证书文件以使验证通过?