我想在 Kubernetes 集群上设置通配符域证书。
我从我的 CA 获得了一个 crt/密钥对和一个中间 crt
我创建了一个引用 crt/key 对的 Secret(我尝试过使用和不使用中间 crt)
apiVersion: v1
data:
tls.crt: LS0tLS1CRUd...
tls.key: LS0tLS1CRUd...
kind: Secret
metadata:
name: wildcard-key-pair
type: kubernetes.io/tls
然后我创建了一个证书和相关的颁发者,使用 cert-manager 并遵循他们来自https://docs.cert-manager.io/en/latest/tasks/issuers/setup-ca.html的文档
apiVersion: certmanager.k8s.io/v1alpha1
kind: Issuer
metadata:
name: wildcard-issuer
namespace: default
spec:
ca:
secretName: wildcard-key-pair
---
apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
name: wildcard
namespace: default
spec:
secretName: wildcard-tls-secret
dnsNames:
- '*.example.com'
- example.com
commonName: '*.example.com'
organization:
- example
issuerRef:
name: wildcard-issuer
kind: Issuer
但是当我使用 kubectl 描述我的证书时,我收到以下错误:
Error getting keypair for CA issuer: certificate is not a CA
我对让我的通配符 dns 在我的 kubernetes 集群上工作的整个过程有点困惑,所以如果你有任何想法可以为我指明正确的方向,请不要犹豫分享你的想法。