无法通过SSL终止使用cert-manager和nginx入口控制器

时间:2018-08-20 19:15:59

标签: kubernetes kubernetes-ingress nginx-ingress

我正在使用SSL终止的GKE上试用nginx-ingress。我已经浏览了数以百万计的有关此过程的博客,该博客使用cert-manager和nginx入口控制器,但是在我的案例中,没有一个起作用。

这当然意味着我做错了什么。但是我不确定。这是我所做的:

  1. 创建在ClusterIP上公开的示例应用程序
  2. 部署nginx-ingress
  3. 创建发行人
  4. 使用颁发者创建nginx入口。

结果:

描述nginx入口后,事件区域显示none。这意味着一切都是空白。请求证书,http验证等都没有发生任何事情。

nginx入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
    name: my-ingress
    annotations:
        kubernetes.io/ingress.class: nginx
        certmanager.k8s.io/cluster-issuer: letsencrypt-staging
        kubernetes.io/tls-acme: 'true'
spec:
    rules:
        -
            host: wptls.ml
            http: {paths: [{path: /, backend: {serviceName: web, servicePort: 80}}]}
    tls:
        -
            secretName: tls-staging-cert
            hosts: [wptls.ml]

clusterissuer.yml:

apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
    name: letsencrypt-staging
spec:
    acme:
        server: 'https://acme-staging-v02.api.letsencrypt.org/directory'
        email: xyz@gmail.com
        privateKeySecretRef:
            name: letsencrypt-sec-staging
        http01: {}

我不确定是否还需要做其他事情。

1 个答案:

答案 0 :(得分:0)

尝试Ingress额外的注释喜欢

nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/secure-backends: "true"

https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/