ssl 具有多个CA配置Haproxy

rqdpfwrv  于 2022-11-14  发布在  HAProxy
关注(0)|答案(1)|浏览(196)

SSL新手在这里,使用haproxy 1.8,有一个情况下,我有2个aws API网关指向同一个代理服务器和2个客户端证书由api网关本身生成分配给每个网关。
现在我有一个haproxy服务器,我试图配置在一种方式,只允许从这2个api网关访问。
当我只为api网关这样做时,意味着我只将ca-file设置为包含1个客户端证书的文件,它就像预期的那样工作得很好,但我不知道如何设置两个客户端证书都被允许。
所以我设置了这些文件:

*haproxy.pem,其中包含

  • 由go daddy颁发的服务器证书
  • 私人密钥
  • 去爸爸那里
    *api-gw.pem从api网关复制的第一个客户端证书
    *api-gw 2.pem从api网关复制的第二个客户端证书
    client-certs.crt,它是 api-gw.pem 和 * api-gw 2.pem 的连接版本

当我为客户端证书绑定如下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,我不知道它是否会工作,把多个客户端证书到一个文件,但从我在互联网上读到的,它的建议,方式...我仍然不知道为什么它不会工作,虽然.

EDIT如果Michael建议,我会使用

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仍然只接受第一个证书。

vm0i2vca

vm0i2vca1#

您对我的配置(在一个文件中包含两个客户端CA证书,用于SSL客户端授权)运行正常:

bind 1.2.3.4:443 ssl crt /etc/haproxy/ssl/my-domain.pem ca-file /etc/haproxy/ssl/my_client_CA_bundle.crt verify required

但也许这是工作应有的具体情况:

  • HaProxy 2.2.X版,
  • my_client_CA_bundle.crt文件中,我们有两个根CA用于客户端验证,
  • 但是我们两个用于客户端验证的CA都是使用相同的私钥创建的(也许这与您的问题有很大的不同?2)。

此配置用于在旧CA用完时平稳过渡到新客户端的CA。

相关问题