【问题标题】:Multiple SSL Certificates kubernetes多个 SSL 证书 Kubernetes
【发布时间】:2019-05-26 18:42:03
【问题描述】:

我正在运行可以从我公司的域名访问的 Web 服务。 我已经使用 Lets Encrypt 设置了自动 SSL 证书,如下所示。

apiVersion: extensions/v1beta1 kind: Ingress metadata: name: basic-ingress annotations: certmanager.k8s.io/issuer: letsencrypt spec: tls: - hosts: - my.domain.net secretName: my-domain-net-tls rules: - host: my.domain.net http: paths: - backend: serviceName: frontend-service servicePort: 80-to-8080-tcp

我想为客户提供从他们自己的域提供前端服务的选项。 使用证书解决此问题的最佳方法是什么? 我知道我可以将负载均衡器设置为使用多个机密,如下所示:https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-multi-ssl, 但我需要从超过规定的最多 10 个域中提供服务。

有没有更有效的方法来解决这个问题?从多个域提供一项前端服务的行业标准是什么?

非常感谢!

【问题讨论】:

  • 标准方法是使用一个证书并在证书中实现 SAN(主题备用名称)。这就是 Google Firebase 的实现方式。否则你会被 10 困住。Let's Encrypt 支持 SAN。使用多个 SSL 证书或 SAN 有一个缺点。设置 SSL 连接需要更长的时间。
  • @JohnHanley 感谢您的回复!看起来很有希望!
  • @JohnHanley:您的评论似乎很有用。因此,您能否考虑发布您的评论作为答案,以便其他社区用户可以从中受益。

标签: ssl kubernetes google-cloud-platform google-kubernetes-engine


【解决方案1】:

支持多个域名和/或子域名的标准方法是使用一个 SSL 证书并实施 SAN(主题备用名称)。额外的域名一起存储在 SAN 中。所有 SSL 证书都支持 SAN,但并非所有证书颁发机构都会颁发多域证书。 Let's Encrypt 确实支持 SAN,因此他们的证书将满足您的目标。

What is a SAN Certificate?

【讨论】:

    【解决方案2】:

    如果您不需要全局 IP 并且可以使用区域 IP,您可以安装 nginx-ingress 并使用多个入口来处理同一 IP 的多个域和证书。

    如果您确实需要全局 IP,您可以按照 @John 的建议进行操作。

    如果您不介意让您的客户将他们的域指向不同的 IP,那么您可以只使用不同的入口,而无需其他任何东西。但请注意,GKE 上的正常入口会实例化 L7 全局负载均衡器,因此请考虑这样做的成本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 2019-11-05
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多