Kubernetes 注释cert-manager.io/cluster-issuer:acme-issuer是否足以生成TLS证书?
从cert manager文档:将注释cert-manager.io/cluster-issuer:acme issuer添加到入口对象应触发垫片,向该颁发者请求证书,并在没有任何命名空间的情况下存储证书?用哪个名字 我试过了,但没用。在入口的yaml定义中添加tls:节会触发垫片,请求证书并将其存储在入口所在的名称空间中 这意味着文档不正确,或者如果没有tls:节,它是否真的可以工作Kubernetes 注释cert-manager.io/cluster-issuer:acme-issuer是否足以生成TLS证书?,kubernetes,cert-manager,Kubernetes,Cert Manager,从cert manager文档:将注释cert-manager.io/cluster-issuer:acme issuer添加到入口对象应触发垫片,向该颁发者请求证书,并在没有任何命名空间的情况下存储证书?用哪个名字 我试过了,但没用。在入口的yaml定义中添加tls:节会触发垫片,请求证书并将其存储在入口所在的名称空间中 这意味着文档不正确,或者如果没有tls:节,它是否真的可以工作 apiVersion: cert-manager.io/v1alpha2 kind: ClusterIssue
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: acme-issuer
spec:
acme:
email: user@example.com
server: https://acme-staging-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: example-issuer-account-key
solvers:
- http01:
ingress:
class: nginx
如果您正确创建了颁发者,则需要创建一个证书,以便颁发者可以使用您在证书资源中拥有的信息颁发证书,并填充机密:
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: certname
spec:
secretName: secretName
issuerRef:
name: letsencrypt-prod
commonName: <the CN>
dnsNames:
- <name>
一旦你有了这个资源,它应该创建一个包含TLS证书的秘密,并将其存储在secretName中。我和你一样使用它,创建我的TLS ok。但是privateKeySecretRef的名称是igual ClusterIssuer name。入口需要tls部分 使用:
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
# The ACME server URL
server: https://acme-v02.api.letsencrypt.org/directory
# Email address used for ACME registration
email: my@email.com
privateKeySecretRef:
name: letsencrypt-prod
# Enable the HTTP-01 challenge provider
solvers:
- http01:
ingress:
class: nginx
检查要调试的证书状态:
kubectl get certificate -o wide
如果状态证书请求
其思想是使用垫片自动创建证书。不要手动创建它们。这就是您的建议吗?证书资源提供了创建实际证书的参数。发卡机构如何在不知道CN和dns名称的情况下创建证书?入口确实在主机规则中指定了dns名称。CN可以由注释或设置指定,但似乎没有相关信息。因此,Shim无法生成此类证书,您必须手动创建它们。这回答了我的问题。请澄清。如果有一种方法可以自动创建证书,我不知道。不过,这非常有效,尤其是当您使用它来管理证书而不仅仅是letsencrypt tls时。我有一个ca授权机构,负责管理多个后端证书以及前端tls证书,并有一个单独的证书资源帮助。入口垫片根据我的问题自动从入口创建带有特定注释和tls部分的证书。这确实很管用。我不太明白。
kubectl get certificate -o wide
kubectl get CertificateRequest -o wide