0

我正在使用 cert-manager 和 kong-ingress-controller 在 kubernetes 中启用 https。

我有兴趣弄清楚更新过程是如何的,当我只使用 aClusterIssuer和它在我们使用入口资源时默认生成的证书时。

我没有使用该kind: Certificate资源,这意味着我没有定义要签名的 X.509 自定义证书并获取通过引用我的ClusterIssuer.

目前我已经创建了一个ClusterIssuer和一个入口资源,它会自动创建一个名为的证书,该证书letsencrypt-prod将用于执行和letsencrypt CAhttp01之间的验证cert-manager

最后,我有这个输出:

I0321 10:49:48.505664       1 controller.go:162] certificates controller: syncing item 'default/letsencrypt-prod'
I0321 10:49:48.506008       1 conditions.go:143] Found status change for Certificate "letsencrypt-prod" condition "Ready": "False" -> "True"; setting lastTransitionTime to 2019-03-21 10:49:48.506003434 +0000 UTC m=+168443.026129945
I0321 10:49:48.506571       1 sync.go:263] Certificate default/letsencrypt-prod scheduled for renewal in 1438h59m58.49343646s
I0321 13:57:46.226424       1 controller.go:168] certificates controller: Finished processing work item "default/letsencrypt-prod"
I0321 15:12:53.199067       1 controller.go:178] ingress-shim controller: syncing item 'default/kong-ingress-service'
I0321 15:12:53.199171       1 sync.go:183] Certificate "letsencrypt-prod" for ingress "kong-ingress-service" is up to date

这意味着我的证书将在1438h-59m- 58.49343646s 内更新。这意味着大约 3 个月

这意味着,真的会自动翻新吗?

这里所示:

所有证书的默认持续时间为 90 天,默认续订窗口为 30 天。这意味着证书被视为有效期为 3 个月,并且将在到期后的 1 个月内尝试续订。

证书管理器文档说:

尽管在证书资源上指定了持续时间和续订期限,但相应的颁发者或 ClusterIssuer 必须支持这一点。

我的集群发行者是:

apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer 
metadata:
  name: letsencrypt-prod
spec:
 acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: my-email@example.com
    privateKeySecretRef:
      name: letsencrypt-prod
    http01: {}

如果我不创建证书资源,如何管理duration和参数。renewBefore?

根据this我可以在我的ClusterIssuer中添加duration和参数吗?renewBefore也许是这种方式?

apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer 
metadata:
  name: letsencrypt-prod
spec:
 acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: my-email@example.com
    privateKeySecretRef:
      name: letsencrypt-prod
    http01: {}
 # ...
 duration: 24h
 renewBefore: 12h 
4

1 回答 1

2

issuers\clusterissuers 不支持此功能,仅在证书上支持。你可以创建一个准入控制器来改变证书,或者你可以有一个 cronjob 在创建证书资源后更新它们

于 2019-03-26T13:24:32.050 回答