Kubernetes-证书管理员-Hashicorp Vault-证书的就绪状态为空

问题描述 投票:1回答:1

我已经创建了使用Vault的Clusterissuer,然后通过它发行了证书,但是证书的Ready状态为空白。事件和证书管理器pod日志中没有任何内容。它也没有创造一个秘密。

kubectl get cert
NAMESPACE             NAME                 READY                          SECRET                                             AGE
default               example-com                                         example-com                                      139m

clusterissuer.yaml

apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
  name: vault-clusterissuer
spec:
  vault:
    path: pki_int/sign/<role name>
    server: https://vault-cluster.example.com:8200
    caBundle: <base64 encoded cabundle pem>
    auth:
      appRole:
        path: approle
        roleId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        secretRef:
          name: cert-manager-vault-approle
          key: secretId

路径中提到的角色名称与在Vault中在pki_init下创建的角色相同。

certificate.yaml

apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
  name: example-com
spec:
  secretName: example-com 
  issuerRef:
    name: vault-clusterissuer
    kind: ClusterIssuer
  commonName: abc.example.com
  dnsNames:
  - abc.example.com

因为它没有生成任何消息或日志,所以我不确定从哪里开始进行故障排除。

clusterissuer.yaml中的path的值对您来说看起来合适吗??

提前谢谢您

kubernetes hashicorp-vault cert-manager
1个回答
0
投票

CertificateConditionReady表示已准备好使用证书。

这定义为:

  • 目标机密存在

  • 目标机密包含尚未过期的证书

  • 目标机密包含对证书有效的私钥

  • commonNamednsNames属性与证书上指定的属性匹配

我认为问题出在dnsNames文件中定义的certificate.yaml错误:

您的证书配置文件:

apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
  name: example-com
spec:
  secretName: example-com 
  issuerRef:
    name: vault-clusterissuer
    kind: ClusterIssuer
  commonName: abc.example.com
  dnsNames:
  - abc.example.com

dnsNames字段应具有值:www.abc.example.com而不是abc.example.com

最终版本应为:

apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
  name: example-com
spec:
  secretName: example-com 
  issuerRef:
    name: vault-clusterissuer
    kind: ClusterIssuer
  commonName: abc.example.com
  dnsNames:
  - www.abc.example.com

也请记住,path字段是PKI后端的保险柜角色路径,而server是保险柜服务器基本URL。path必须使用库sign端点。

[请看:issuer-vault-setupcert-clusterissuer

© www.soinside.com 2019 - 2024. All rights reserved.