首页 > 解决方案 > 具有多个 CA 配置的 Haproxy

问题描述

这里的 SSL 新手,使用 haproxy 1.8,当我有 2 个 aws API 网关指向同一个代理服务器和 2 个由 api 网关本身生成的客户端证书分配给每个网关时,我遇到了这种情况。

现在我有一个 haproxy 服务器,我正在尝试以仅允许从这 2 个 api 网关访问的方式进行配置。

当我只为 api 网关执行此操作时,这意味着我只将 ca 文件设置为包含 1 个客户端证书的文件,它按预期工作得很好,但我不知道如何设置两个客户端证书都被允许。

所以我有这些文件设置:

当我像下面这样为客户端证书绑定 ssl 时,它工作得很好:

bind :443 ssl crt /etc/haproxy/haproxy.pem verify required ca-file /etc/haproxy/api-gw.pem

或者

bind :443 ssl crt /etc/haproxy/haproxy.pem verify required ca-file /etc/haproxy/api-gw2.pem

对于上面的每个绑定,只有正确的 api 网关可以访问代理,而另一个不能。

但是当我执行以下操作以允许两者都访问代理服务器时,即使文件包含两者,它也只允许第一个客户端证书:

bind :443 ssl crt /etc/haproxy/haproxy.pem verify required ca-file /etc/haproxy/client-certs.pem

由于我在证书和 ssl 方面的知识有限,我不确定将多个客户端证书放入一个文件中是否可行,但根据我在互联网上阅读的内容,建议这样做......我仍然不不知道为什么它不起作用。

编辑 我迈克尔建议,我将两个客户端证书放在一起使用

cat api-gw.pem api-gw2.pem > api-gw-combo.pem

组合文件如下所示:

-----BEGIN CERTIFICATE-----
.....cert content for api-gw
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
.....cert content for api-gw2
-----END CERTIFICATE-----

但与我的初始文件相同client-certs.crt,haproxy 仍然只接受第一个证书。

标签: amazon-web-servicessslssl-certificateaws-api-gatewayhaproxy

解决方案


推荐阅读