首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多CA配置的Haproxy

多CA配置的Haproxy
EN

Stack Overflow用户
提问于 2019-01-18 02:33:54
回答 1查看 2.2K关注 0票数 4

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

现在,我有了一个have服务器,我正试图以一种只允许从这2个api网关访问的方式配置它。

当我只为api网关这样做时,这意味着我只将ca文件设置为包含1个客户端证书的文件,它的工作正常,但我不知道如何将这两个客户端证书设置为允许的。

因此,我设置了以下文件:

  • haproxy.pem,包含
    • go爸爸颁发的服务器证书
    • 私钥
    • 加油爸爸证书

  • 从api网关复制的api-gw.pem第一客户端证书
  • api -gw2.pem从api网关复制的第二个客户端证书
  • client-certs.crt是api-gw.pem和api-gw2.pem的级联版本。

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

代码语言:javascript
复制
bind :443 ssl crt /etc/haproxy/haproxy.pem verify required ca-file /etc/haproxy/api-gw.pem

代码语言:javascript
复制
bind :443 ssl crt /etc/haproxy/haproxy.pem verify required ca-file /etc/haproxy/api-gw2.pem

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

但是,当我按照下面的方式允许两种访问代理服务器时,它只允许第一个客户端证书,即使该文件同时包含这两种内容:

代码语言:javascript
复制
bind :443 ssl crt /etc/haproxy/haproxy.pem verify required ca-file /etc/haproxy/client-certs.pem

由于我在证书和ssl方面的知识有限,我不确定它是否能将多个客户端证书放入一个文件中,但据我在互联网上所读到的,它是这样的.但我还是不知道为什么不起作用。

编辑i建议,我使用

代码语言:javascript
复制
cat api-gw.pem api-gw2.pem > api-gw-combo.pem

这个组合体文件看起来像:

代码语言:javascript
复制
-----BEGIN CERTIFICATE-----
.....cert content for api-gw
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
.....cert content for api-gw2
-----END CERTIFICATE-----

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

EN

回答 1

Stack Overflow用户

发布于 2022-09-26 10:58:25

您的配置(一个文件中大约有两个用于SSL客户端授权的客户端CA证书)运行良好:

代码语言:javascript
复制
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都是使用相同的私钥创建的(也许这与您的问题有重要的区别?)。

此配置用于在旧客户端耗尽时平稳地转换到新客户端的CA。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54247025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档