HAproxy 1.5 可信 CA

Jon*_*ver 6 ssl haproxy

我试图让 HAproxy 1.5.x 信任机器 ( /etc/ssl/certs)信任存储中已有的任何证书颁发机构,而无需明确指定ca-file要信任的单个根颁发机构证书。我想避免给定后端服务器使用由不同机构颁发的证书并导致中断的情况,因为该后端服务器不再受信任——尽管 CA 位于机器信任存储中。

在文件的给定backend部分中haproxy.cfg,该server行有一个名为ca-file. 此选项指示 HAproxy 使用提供的权限验证后端服务器证书的权限。问题是这指向单个 CA。

我找到了这个ca-base选项。除非我弄错了,否则这只是避免必须ca-file在每个声明中指定完整路径的快捷方式。

小智 6

我最近在收到错误消息的 1.5.6 中遇到了这个问题

默认情况下启用验证但未指定 CA 文件。如果您在 LAN 上运行,您肯定信任服务器的证书,请在“服务器”行上设置明确的“验证无”语句,或在全局部分使用“ssl-server-verify none”默认情况下禁用服务器端验证。

这与未指定ca-file 相关,您不能在默认服务器级别指定(根据文档)。如果后端端点的证书由另一个 CA 重新颁发,我同样不想考虑服务中断。

我通过指向您的 linux 发行版打包并为您整齐维护的组合 CA 证书文件解决了这个问题。在 debian 上,这个文件是/etc/ssl/certs/ca-certificates.crt,它对你来说可能是一样的。(在 RHEL7 上,检查/etc/ssl/certs/ca-bundle.crt

global
    ca-base /etc/ssl/cert # debian
frontend f1
    use_backend b1
backend b1
    server s1 something.com:443 ssl verify required ca-file ca-certificates.crt
Run Code Online (Sandbox Code Playgroud)

  • 在 RHEL 7 中,路径是 /etc/ssl/certs/ca-bundle.crt 。也可以在“server”行中指定完整路径,而无需在“global”下设置 ca-base。 (2认同)