我想在kubernetes集群上设置一个通配符域证书。
我从CA获得了一个crt /密钥对和一个中间crt
我已经创建了一个引用crt/密钥对的Secret (我尝试过使用和不使用中间crt)
apiVersion: v1
data:
tls.crt: LS0tLS1CRUd...
tls.key: LS0tLS1CRUd...
kind: Secret
metadata:
name: wildcard-key-pair
type: kubernetes.io/tls然后,我已经创建了一个证书和相关的颁发者,使用证书管理器,并遵循他们的文档从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我对在kubernetes集群上使用通配符dns的整个过程感到有点困惑,所以如果您有任何想法可以为我指明正确的方向,请毫不犹豫地与我分享您的想法。
发布于 2019-05-15 22:08:26
正如@johnharris85所提到的,如果您正在使用您的证书,请确保您的证书的CA标志为true。您可以通过以下方式查看
$ openssl x509 -text -noout -in ca.crt |grep "CA:"输出应为CA:TRUE。
希望它能帮上忙!
https://stackoverflow.com/questions/56137406
复制相似问题