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仍然只接受第一个证书。
1条答案
按热度按时间vm0i2vca1#
您对我的配置(在一个文件中包含两个客户端CA证书,用于SSL客户端授权)运行正常:
但也许这是工作应有的具体情况:
my_client_CA_bundle.crt
文件中,我们有两个根CA用于客户端验证,此配置用于在旧CA用完时平稳过渡到新客户端的CA。