我正在与cert-manager和kong-ingress-controller一起在kubernetes中启用https。
我想弄清楚更新过程如何,当我仅使用ClusterIssuer
时,以及使用入口资源时默认生成的证书。
我没有使用kind: Certificate
资源,这意味着我没有定义要签名的X.509自定义证书,也没有获得通过引用我的ClusterIssuer
验证的证书。
目前,我已经创建了一个ClusterIssuer
和一个入口资源,该入口资源会自动创建一个名为letsencrypt-prod
的证书,该证书将用于在{{1}之间执行http01
验证},并让CA加密
最后,我得到以下输出:
cert-manager
这意味着我的证书将在 1438h-59m-58.49343646s 内进行更新。这意味着大约三个月
这意味着真的会自动装修吗?
如指示here:
所有证书的默认持续时间为90天,默认续订窗口为30天。这意味着证书被视为有效期为3个月,并且将在到期后的1个月内尝试续签。
证书管理器文档说:
尽管在证书资源上指定了持续时间和续订期限,但是相应的颁发者或ClusterIssuer必须支持此期限。
我的群集发行者是:
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
如果不创建证书资源,如何管理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
参数。 ?
是否可以在我的ClusterIssuer中添加renewBefore
和duration
参数?也许是这样吗?
renewBefore
答案 0 :(得分:1)
发行人\集群发行人仅在证书上不支持此功能。您可以创建admission controllers来对证书进行突变,也可以在创建证书资源后通过cronjob对其进行更新