HAproxy 1.5可信CA

我试图让HAproxy 1.5.x信任已经在机器的信任存储区( /etc/ssl/certs )中的任何证书颁发机构,而不必明确指定单个的ca-file根授权证书被信任。 我想避免给定的后端服务器使用由不同权威机构颁发的证书的情况,并且由于后端服务器不再受信任而导致中断 – 尽pipeCA在机器信任存储器中。

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

我find了ca-base选项。 除非我错了,否则这只是避免在每个声明中指定ca-file的完整path的捷径。

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

validation是默认启用的,但没有指定CA文件。 如果你运行在一个你肯定信任服务器证书的局域网上,请在服务器上设置一个明确的'verify none'语句,或者在全局部分使用'ssl-server-verify none'禁用服务器端validation默认情况下。

这与没有指定ca-file有关 ,你不能在默认服务器级别指定ca-file (根据文档)。 我也不想考虑服务中断,如果后端terminal有另一个CA重新颁发证书。

我通过指向您的Linux发行版软件包并整齐地为您维护的CA证书文件解决了。 在debian上,这个文件是/etc/ssl/cert/ca-certificates.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 

我认为你误解了ca-file的重要性。

CA用于授权客户端 ,而不是您自己的后端服务器。

HAproxy不会build立到其后端的SSL连接(据我所知) – 没有握手,也没有HAproxyvalidation的证书。

如果您或您的客户端设置PKI以仅允许来自可信客户端的安全SSL连接,则CA文件是必需的。 您(或客户端)将自己生成CA证书,并使用它来签署客户端证书。

即使在极less数情况下,同一个服务需要多个CA,似乎也可能将这些CA捆绑在一个PEM文件中。