首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用带有ingress和Helm一起安装的通配符证书?

如何使用带有ingress和Helm一起安装的通配符证书?
EN

Stack Overflow用户
提问于 2021-10-20 20:10:25
回答 2查看 3.1K关注 0票数 3

如何为ingress nginx中的所有主机使用自定义通配符TLS证书

我使用一个入口-nginx作为入口控制器。它是使用Helm图表安装的:

代码语言:javascript
复制
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update

# create secret
kubectl create secret tls example-com-certificate --namespace ingress-nginx \
    --key certs/tls.key \
    --cert certs/tls.crt   
   
# install ingress-nginx and use the secret
helm install ingress-nginx ingress-nginx/ingress-nginx --namespace ingress-nginx \
  --set controller.wildcardTLS.cert=ingress-nginx/example-com-certificate \
  --set controller.service.loadBalancerIP=10.0.0.1

在这里,入口资源示例

代码语言:javascript
复制
kind: Ingress
apiVersion: networking.k8s.io/v1beta1
metadata:
  name: myservice-ingress
  namespace: myservice
  annotations:
    kubernetes.io/ingress.class: "nginx"
    kubernetes.io/ingress.allow-http: "false"    
    nginx.ingress.kubernetes.io/backend-protocol: "http"
    nginx.ingress.kubernetes.io/default-backend: myservice
spec:  
  tls:  
  - hosts:
    - myservice.example.com
    #secretName omitted to use default wildcard certificate
  rules:
  - host: myservice.example.com
    http:
      paths:
      - path: /
        backend:
          serviceName: myservice
          servicePort: 80

在访问https://myservice.example.com时,预期会使用我的example-com-certificate

但是,使用的是Kubernetes Ingress Controller Fake Certificate。为什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-23 05:01:54

tls秘密需要与您的应用程序位于同一个名称空间中,

在这个命令中,您指定了入口-nginx作为您的命名空间。

代码语言:javascript
复制
kubectl create secret tls example-com-certificate --namespace ingress-nginx \
--key certs/tls.key \
--cert certs/tls.crt   

但是入口规则在另一个名称空间"myservice“中。

票数 1
EN

Stack Overflow用户

发布于 2021-10-21 13:11:21

根据这个例子尝试:

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: myservice-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
  - host: my.example.com
    http:
      paths:
      - backend:
          serviceName: myservice
          servicePort: 80
        path: /
  tls:
  - hosts:
    - '*.example.com'
    - my.example.com
    secretName: wildcard-example-com-tls
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69652455

复制
相关文章

相似问题

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