簡體   English   中英

Traefik Ingress(Kubernetes)沒有收到letsencrypt證書

[英]Traefik Ingress (Kubernetes) not receiving letsencrypt certificates

我用let'sencrypt ACME配置了Traefik(掌舵圖),但我沒有收到任何證書。 Traefik Ingress在80和443端口上網。

traefik.toml

logLevel = "INFO"
InsecureSkipVerify = true
defaultEntryPoints = ["http","https"]
[entryPoints]
  [entryPoints.http]
  address = ":80"
  compress = true
  [entryPoints.https]
  address = ":443"
  compress = true
    [entryPoints.https.tls]
      [[entryPoints.https.tls.certificates]]
      CertFile = "/ssl/tls.crt"
      KeyFile = "/ssl/tls.key"
[kubernetes]
[acme]
email = "email@email.com"
storage = "/acme/acme.json"
entryPoint = "https"
onHostRule = true
caServer = "https://acme-staging-v02.api.letsencrypt.org/directory"
acmeLogging = true
  [acme.httpChallenge]
  entryPoint = "http"
[web]
address = ":8080"

與Traefik一起進入IngressClass

{
  "kind": "Ingress",
  "apiVersion": "extensions/v1beta1",
  "metadata": {
    "name": "domain",
    "namespace": "reverse-proxy",
    "selfLink": "/apis/extensions/v1beta1/namespaces/reverse-proxy/ingresses/domain",
    "uid": "550cdedc-ba77-11e8-8657-00155d00021a",
    "resourceVersion": "6393921",
    "generation": 5,
    "creationTimestamp": "2018-09-17T12:43:52Z",
    "annotations": {
      "ingress.kubernetes.io/ssl-redirect": "true",
      "kubernetes.io/ingress.class": "traefik"
    }
  },
  "spec": {
    "tls": [
      {
        "hosts": [
          "domain.com"
        ],
        "secretName": "cert" // without is also not working
      }
    ],
    "rules": [
      {
        "host": "domain.com",
        "http": {
          "paths": [
            {
              "backend": {
                "serviceName": "domain",
                "servicePort": 443
              }
            }
          ]
        }
      },
      {
        "host": "www.domain.com",
        "http": {
          "paths": [
            {
              "backend": {
                "serviceName": "www-domain",
                "servicePort": 443
              }
            }
          ]
        }
      }
    ]
  },
  "status": {
    "loadBalancer": {}
  }
}

我試過使用http-01和tls-sni-01挑戰。 dns-01是沒有選項,因為我的DNS提供商沒有API。

你如何將letsencrypt配置注入你的traefik Ingress服務/守護進程?

Traefik沒有正式對Kubernetes Ingress文檔進行過密切關注。 但這是一個很好的指南 尋找“外部Traefik入口控制器”,您需要一個kv后端來存儲您的證書。

您也可以嘗試與Traefik合作的cert-manager

建議不要在Kubernetes上使用內置的ACME對Traefik的支持,因為設置故障轉移/冗余變得困難。 如Rico所述,Cert-manager是一個更好的解決方案,也是Traefik團隊目前推薦的:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM