【问题标题】:Can We use Multiple AWS ACM Certificates at Nginx-Ingress-Contoller OR Multiple ACM certificate at Ingress object level?我们可以在 Nginx-Ingress-Contoller 使用多个 AWS ACM 证书或在 Ingress 对象级别使用多个 ACM 证书吗?
【发布时间】:2020-12-05 13:07:16
【问题描述】:

我们正在使用 EKS 和 Nginx-ingress(NLB)。我正在尝试在 NLB 的 AWS-load-balancer-SSL-cert 注释中配置多个 AWS ACM 证书。但没有运气。如果可能的话,有人可以帮忙吗?谢谢

如果不可能,请指导我如何在入口对象级别使用多个 ACM 证书(如果可能)。

我的确切场景:-

我正在使用 NLB(仅供参考)

如果我们能够在控制器级别添加多个也适用于我的 ACM 证书(我目前在 NLB 中使用单个证书,请参见下面的注释)

在控制器级别,这些标志帮助我添加单个证书:-

service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:ap-south-1:1234556677:certificate/3a1d5a-469b-dffe4bad3182
service.beta.kubernetes.io/aws-load-balancer-type: nlb

我正在按照 NameSpace 维护一个入口对象。如果我们能够在入口对象级别附加证书,这也解决了我的问题。

【问题讨论】:

    标签: amazon-web-services ssl kubernetes amazon-eks


    【解决方案1】:

    添加 Rico 的答案。

    无法将多个证书附加到 Nginx 入口控制器或带有annotation : service.beta.kubernetes.io/aws-load-balancer-ssl-cert 的任何其他入口。

    关闭公关https://github.com/kubernetes/kubernetes/pull/95208

    问题线程:https://github.com/kubernetes/cloud-provider-aws/issues/80#issuecomment-686722657

    它不适用于 NLB 但是,如果您使用的是 ALB,则可以使用此 注释

    单一证书与 ALB

    alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxxx:certificate/xxxxxxx
    

    多个证书

    alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxxx:certificate/cert1,arn:aws:acm:us-west-2:xxxxx:certificate/cert2,arn:aws:acm:us-west-2:xxxxx:certificate/cert3
    

    alb.ingress.kubernetes.io/certificate-arn 指定由 ACM

    管理的一个或多个证书的 ARN

    NLB 的另一种选择

    创建具有多个通配符域的 ACM 证书,并将此单个 Cert 用于入口。这也适用于NLB

    因此,您的 ACM 证书将存储 certs 用于多个域示例

    *.example.com
    *.hello.io
    *.so.in
    

    单个 ACM 证书现在可以与 NLB Ingress 一起使用,无需担心附加多个证书。


    选项:2 使用 cert-manager 并秘密存储证书

    如果您打算使用多个域会更好使用 wild card 证书和Cert-manager 将它们存储到 Secret >K8s 并将其用作具有入口的可插入解决方案。

    【讨论】:

      【解决方案2】:

      好问题。

      在指向 nginx 入口控制器(或任何其他入口控制器 AFAIK)的 ALB/NLB 上不支持多个 ACM 证书。

      来自 Kubernetes 的肮脏技巧是创建另一个 Service 指向同一个 nginx 入口控制器(相同的选择器),但在这种情况下,它只会创建另一个 ALB/NLB,你可能不希望这样。

      可能对您更有效的非 Kubernetes 方式只是从 AWS 本身进行,并修改将流量发送到您的 nginx 入口的 ALB/NLB。

      ✌️

      【讨论】:

      • 意味着我们可以在 AWS 级别添加多个证书?
      • 我已经尝试过了,但它不起作用!我已经向 AWS 的 LoadBalancer 添加了 3 个证书,但在我的 kubernetes 集群中,我的 java 应用程序中仍然出现证书错误,上面写着 PKIX path building failed unable to find valid certification path to requested target
      • 您的 Java 应用服务本身是 https 流量吗?也许它需要那个级别的证书
      猜你喜欢
      • 1970-01-01
      • 2021-12-19
      • 2017-08-28
      • 1970-01-01
      • 2020-01-20
      • 2018-12-27
      • 2021-04-07
      • 2018-02-05
      • 2019-10-04
      相关资源
      最近更新 更多