Ssl gke证书管理员证书正在进行中

Ssl gke证书管理员证书正在进行中,ssl,google-cloud-platform,google-kubernetes-engine,lets-encrypt,cert-manager,Ssl,Google Cloud Platform,Google Kubernetes Engine,Lets Encrypt,Cert Manager,我正试图通过从http转移到https,使我的google服务更加安全。我一直在遵循cert manager文档以使其正常工作 我不能在集群上安装helm,也不能安装nginx ingress,这就是为什么我使用dns01挑战而不是http01 我用常规清单v0.11.0安装了cert manager 创建dns管理员服务帐户后,我使用此yaml创建颁发者: apiVersion: cert-manager.io/v1alpha2 kind: Issuer metadata: name:

我正试图通过从http转移到https,使我的google服务更加安全。我一直在遵循cert manager文档以使其正常工作

我不能在集群上安装helm,也不能安装nginx ingress,这就是为什么我使用dns01挑战而不是http01

我用常规清单v0.11.0安装了cert manager

创建dns管理员服务帐户后,我使用此yaml创建颁发者:

apiVersion: cert-manager.io/v1alpha2
kind: Issuer
metadata:
  name: example-issuer
spec:
  acme:
    email: email@gmail.com
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      # Secret resource used to store the account's private key.
      name: example-issuer-account-key
    # Add a single challenge solver, HTTP01 using nginx
    solvers:
      - dns01:
          clouddns:
            project: my-project-id
            # This is the secret used to access the service account
            serviceAccountSecretRef:
              name: clouddns-dns01-solver-svc-acct
              key: key.json
和我的证书对象:

apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
  name: example-com
  namespace: default
spec:
  secretName: example-com-tls
  issuerRef:
    # The issuer created previously
    name: example-issuer
  commonName: my-domain.com
  dnsNames:
    - my-domain.com
    - www.my-domain.com
应用这些文件后,我得到了以下结果:

$ kubectl describe issuer
Name:         example-issuer
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"cert-manager.io/v1alpha2","kind":"Issuer","metadata":{"annotations":{},"name":"example-issuer","namespace":"default"},"spec...
API Version:  cert-manager.io/v1alpha2
Kind:         Issuer
Metadata:
  Creation Timestamp:  2019-11-28T15:00:33Z
  Generation:          1
  Resource Version:    306180
  Self Link:           /apis/cert-manager.io/v1alpha2/namespaces/default/issuers/example-issuer
  UID:                 d3d1f66e-11ef-11ea-856a-42010a8401a2
Spec:
  Acme:
    Email:  email@gmail.com
    Private Key Secret Ref:
      Name:  example-issuer-account-key
    Server:  https://acme-staging-v02.api.letsencrypt.org/directory
    Solvers:
      dns01:
        Clouddns:
          Project:  my-project-id
          Service Account Secret Ref:
            Key:   key.json
            Name:  clouddns-dns01-solver-svc-acct
Status:
  Acme:
    Last Registered Email:  email@gmail.com
    Uri:                    https://acme-staging-v02.api.letsencrypt.org/acme/acct/11671464
  Conditions:
    Last Transition Time:  2019-11-28T15:00:34Z
    Message:               The ACME account was registered with the ACME server
    Reason:                ACMEAccountRegistered
    Status:                True
    Type:                  Ready
Events:                    <none>

$ kubectl get certificates -o wide
NAME          READY   SECRET            ISSUER           STATUS                                                                AGE
example-com   False   example-com-tls   example-issuer   Waiting for CertificateRequest "example-com-1030278725" to complete   49m

$ kubectl get CertificateRequest -o wide
NAME                     READY   ISSUER           STATUS                                                                                            AGE
example-com-1030278725   False   example-issuer   Waiting on certificate issuance from order default/example-com-1030278725-1017944607: "pending"   50m
$kubectl描述发行人
名称:示例发行人
名称空间:默认值
标签:
注释:kubectl.kubernetes.io/last-applicated-configuration:
{“apiVersion”:“cert manager.io/v1alpha2”,“种类”:“颁发者”,“元数据”:{“注释”:{},“名称”:“示例颁发者”,“命名空间”:“默认”},“规范…”。。。
API版本:cert-manager.io/v1alpha2
种类:发行人
元数据:
创建时间戳:2019-11-28815:00:33Z
世代:1
资源版本:306180
自链接:/api/cert-manager.io/v1alpha2/namespace/default/issuers/example-issuer
UID:d3d1f66e-11ef-11ea-856a-42010a8401a2
规格:
顶点:
电邮:email@gmail.com
私钥秘密参考:
名称:示例颁发者帐户密钥
服务器:https://acme-staging-v02.api.letsencrypt.org/directory
解算器:
dns01:
Clouddns:
项目:我的项目id
服务帐户机密参考:
Key:Key.json
名称:clouddns-dns01-solver-svc-acct
地位:
顶点:
上次注册的电子邮件:email@gmail.com
Uri:https://acme-staging-v02.api.letsencrypt.org/acme/acct/11671464
条件:
最后转换时间:2019-11-28815:00:34Z
消息:ACME帐户已在ACME服务器上注册
原因:acmeacunregistered
状态:正确
类型:就绪
活动:
$kubectl获得证书-o宽
名称就绪秘密颁发者状态年龄
示例com错误示例com tls示例发卡机构等待证书请求“示例com-1030278725”完成49m
$kubectl获得认证请求-o宽
名称就绪颁发者状态年龄
示例-com-1030278725错误示例发卡机构等待订单默认证书颁发/示例-com-1030278725-1017944607:“待定”50m

问题在于,您正在尝试为Google Domains DNS服务器管理的域完成DNS01挑战。目前不可能

Google Domains DNS不是Google Cloud DNS。您不能使用Cert Manager对Google Domains进行自动DNS01质询。Google Domains中没有设置TXT记录的API。Google Cloud DNS的Cert Manager有受支持的API


我的建议是:将您域的DNS服务器移动到云DNS。

DNS01验证使用TXT记录进行验证。转到Google Cloud DNS。查找您的域。您是否看到任何
\u acme-challenge
记录?如果是,TTL设置为什么?如果否,请再次检查服务帐户是否具有管理DNS服务器的权限。检查后IAM接口,该服务是dns管理员,但在我访问Google Cloud dns时未找到任何记录。未创建任何记录。这说明了什么?没有修改dns服务器的权限,或者配置设置无效。Stackdriver告诉了你什么?某个地方有一条错误消息会指出问题。在检查Stackdriver之后,我发现了这个警告[消息:“错误提示挑战:没有为域mamdouni apps.com找到匹配的GoogleCloud域。”]。这个域是通过google.domains.com创建的,它可以与我的http入口配合使用。我检查了它:,好的,现在对我来说更清楚了。我感谢你的帮助。谢谢你,John。在我们转到google云DNS之前,我现在将使用http01挑战。