问题描述
正在使用bitnami/wordpress helm chart创建多个运行在不同域上的网站。他希望自动保护这些网站并使用单个ingress来路由流量。他正在使用这个教程https://docs.bitnami.com/tutorials/secure-wordpress-kubernetes-managed-database-ssl-upgrades/来创建ingress nginx控制器+letsencrypt。路由工作正常,但是SSL仅适用于第一个创建的wordpress容器/域,之后的容器/域没有被保护。他无法弄清楚原因。k8s v1.19.10-gke.1600 helm 3.6.0。
假设我有sub1.domain.com和sub2.domain.com,我有两个sub1.domain.com.values.yaml和sub2.domain.com.values.yaml文件来自定义bitnami/wordpress helm chart。
配置如下:
sub1.domain.com.values.yaml:
ingress:
enabled: true
certManager: true
hostname: sub1.domain.com
extraTls:
- hosts:
- sub1.domain.com
secretName: wordpress.local-tls
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
sub2.domain.com.values.yaml:
ingress:
enabled: true
certManager: true
hostname: sub2.domain.com
extraTls:
- hosts:
- sub2.domain.com
secretName: wordpress.local-tls
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
我使用以下命令应用它们:
helm install sub1 bitnami/wordpress -f sub1.domain.com.values.yaml
helm install sub2 bitnami/wordpress -f sub2.domain.com.values.yaml
两者都可以通过浏览器访问,但只有sub1.domain.com具有有效的SSL证书,sub2具有kubernetes伪证书。
我做错了什么?
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
在同一个命名空间中,同一个TLS证书密钥只能映射到一个ingress。它将映射到第一个部署的ingress。为了使其工作,您需要创建一个具有不同名称的相同密钥的证书,并将其映射到另一个ingress。
以下是解决方案的步骤:
1. 在创建ingress之前,创建一个新的TLS证书密钥。
2. 在每个ingress的配置文件中,将新的TLS证书密钥映射到相应的域名。
下面是一个示例:
ingress:
enabled: true
certManager: true
hostname: sub1.domain.com
extraTls:
- hosts:
- sub1.domain.com
secretName: wordpress.local-tls-1
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
ingress:
enabled: true
certManager: true
hostname: sub2.domain.com
extraTls:
- hosts:
- sub2.domain.com
secretName: wordpress.local-tls-2
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
在上面的示例中,我们为每个ingress创建了一个新的TLS证书密钥,并将其映射到相应的域名。这将确保每个域名都有自己的有效SSL证书。
方案2
如果您使用的是bitnami/wordpress helm chart,那么它应该处理这个问题。您可以尝试查看bitnami/wordpress的文档或寻求他们的支持。
如果您使用的是bitnami/wordpress helm chart,那么它应该处理这个问题。您可以尝试查看bitnami/wordpress的文档或寻求他们的支持,以获取更多关于如何正确配置多个域名和SSL证书的信息。