当前位置: 首页 > 知识库问答 >
问题:

AWS Kubernetes:在AWS负载平衡器上选择SSL证书

松和泰
2023-03-14

我正在尝试为我的AWS EKS群集的AWS负载平衡器配置SSL。负载平衡器正在代理我的群集上运行的Traefik实例。这在HTTP上运行良好。

然后,我在Cert Manager中创建了我的AWS证书,复制了ARN并遵循了文档的这一部分:服务-Kubernetes

但是证书没有链接到AWS负载平衡器中的侦听器。我在网上找不到更多的文档或工作示例。有人能给我指出一个吗?

LoadBalancer配置如下所示:

apiVersion: v1
kind: Service
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"name":"traefik-ingress-service","namespace":"kube-system"},"spec":{"ports":[{"name":"web","port":80,"targetPort":80},{"name":"admin","port":8080,"targetPort":8080},{"name":"secure","port":443,"targetPort":443}],"selector":{"k8s-app":"traefik-ingress-lb"},"type":"LoadBalancer"}}
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:eu-north-1:000000000:certificate/e386a77d-26d9-4608-826b-b2b3a5d1ec47
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
  creationTimestamp: 2019-01-14T14:33:17Z
  name: traefik-ingress-service
  namespace: kube-system
  resourceVersion: "10172130"
  selfLink: /api/v1/namespaces/kube-system/services/traefik-ingress-service
  uid: e386a77d-26d9-4608-826b-b2b3a5d1ec47
spec:
  clusterIP: 10.100.115.166
  externalTrafficPolicy: Cluster
  ports:
  - name: web
    port: 80
    protocol: TCP
    targetPort: 80
  - name: admin
    port: 8080
    protocol: TCP
    targetPort: 8080
  - name: secure
    port: 443
    protocol: TCP
    targetPort: 80
  selector:
    k8s-app: traefik-ingress-lb
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - hostname: e386a77d-26d9-4608-826b-b2b3a5d1ec47.eu-north-1.elb.amazonaws.com

谨致问候,期待您的回答。

共有1个答案

阎功
2023-03-14

由于使用EKS v1.14(和nginx ingress controller)和网络负载平衡器,我也遇到了类似的问题,根据Kubernetes的说法,这可能是因为Kubernetes v1.15-GitHub问题。自2020年3月10日起,亚马逊EKS现在支持Kubernetes版本1.15

因此,如果它仍然相关,请在此处阅读更多信息-如何使用ACM终止Amazon EKS工作负载上的HTTPS流量?。

 类似资料:
  • 我们在AWS VPC中有一个面向内部的应用程序负载平衡器。运行在公用子网中的web应用程序正在访问此文件。该web应用位于自定义域url后面,并使用SSL证书进行安全保护。由于API负载平衡器未应用SSL,因此从web app到API LB的通信失败。 是否可以在AWS中为面向内部的负载平衡器获取SSL证书?

  • 我有一个在AWS上运行的项目。结构如下: 我已使用AWS证书管理器为负载平衡器创建了一个证书。所以现在的流量是: 但由于加载网页时实例上没有证书,因此会收到“站点不安全”警告。 如何创建从客户端到负载均衡器后面的任何实例的完整SSL连接? 编辑 以下是nginx配置(适用于所有实例)

  • 我目前有一个基于rails的Web应用程序,它需要通过HTTP提供一小部分页面——但更喜欢通过HTTPS提供其余部分。在我当前的AWS设置中,SSL终止于弹性负载均衡器,与我的应用服务器的所有通信都通过HTTP进行。正因为如此,像Rack SSL Enforcher这样的解决方案是不合适的。目前,我在每个页面中提供以下JS片段来处理重定向: 这导致每次访问其中一个页面时,性能都会受到相对显著的影响

  • 目标:将弹性/静态IP分配给负载平衡器(LB),以服务于处理DNS(端口53)、HTTPS(端口443)、HTTP(端口80)的EC2实例。 需要静态IP来正确配置DNS记录(即A记录)。需要在后端/服务器上终止TLS,以提供无限制的 经典的负载平衡器允许自定义安全规则,并允许在EC2实例上终止SSL。问题是静态IP不能分配给经典LB,只能分配给其中的单个实例,这无法平衡负载。 要分配静态IP,我

  • 我在将https添加到我的EC2实例时遇到了一个问题,也许你们可以找到让它工作的答案。 我有一个负载平衡器,它正在将连接转发到我的EC2实例,我已将SSL证书添加到负载平衡器,一切正常,我已将侦听器添加到端口443,该端口将转发到我的实例的端口443,我已将Apache配置为在端口443和80上侦听,现在这里是我的负载平衡器的屏幕截图: SSL证书有效,在端口80(HTTP)上一切正常,但如果我尝

  • 我在AWS中的应用程序ELB后面有一个ec2实例。我想将SSL应用于ec2实例和负载平衡器。对于ec2实例,我购买了ssl并安装了它,它工作正常。对于负载平衡器,我将使用免费的AWS ACM证书并将其安装在负载平衡器上。这会有什么问题吗?i、 e.在ec2和elb上安装SSL。