我正在使用 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