Ssl gke证书管理员证书正在进行中
我正试图通过从http转移到https,使我的google服务更加安全。我一直在遵循cert manager文档以使其正常工作 我不能在集群上安装helm,也不能安装nginx ingress,这就是为什么我使用dns01挑战而不是http01 我用常规清单v0.11.0安装了cert manager 创建dns管理员服务帐户后,我使用此yaml创建颁发者: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:
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挑战。