Google 托管 SSL 证书卡在 "Provisioning" 上,域 FAILED_NOT_VISIBLE
Google managed SSL certificate stuck on "Provisioning" with FAILED_NOT_VISIBLE for domains
在 this tutorial 之后,我在区域自动驾驶集群中的 GKE 上部署了一个应用程序。我使用链接到我拥有的域、静态 IP 和 Google HTTPS 托管证书的入口使其可公开访问。
通过 ip 访问我的应用程序,或者我的域名在 HTTP 中运行良好,但是在使用 HTTPS 时,我收到 ERR_SSL_VERSION_OR_CIPHER_MISMATCH mydomain.com uses an incompatible protocol
错误(我使用 IP 和域时都出现此错误) .事实上,在 Google Cloud Cnsole 上查询我的托管证书时,我看到它仍处于 PROVISIONING
状态(现在已经超过 3 天),并且我的域旁边有一个警告三角形指定 FAILED_NOT_VISIBLE
.
我检查了我的域名设置,它有一个 A
记录指向我的入口使用的静态 IP(我在学习教程时配置了它)。我还检查了 GKE 上的负载均衡器,它有一个使用我的托管证书的 HTTPS 目标代理
这是我的入口
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-api
annotations:
# specifies the name of the global IP address resource to be associated with the HTTP(S) Load Balancer
kubernetes.io/ingress.global-static-ip-name: my-app-ip
networking.gke.io/managed-certificates: managed-cert
kubernetes.io/ingress.class: "gce"
labels:
app: my-app-api
spec:
defaultBackend:
service:
name: my-app-api
port:
name: http
和我的托管证书
apiVersion: networking.gke.io/v1
kind: ManagedCertificate
metadata:
name: managed-cert
spec:
domains:
- mydomain.com
- www.mydomain.com
我使用 kubectl apply -f my-file.yaml
应用了它们
我不明白我做错了什么或遗漏了什么。有人可以帮我让我的应用程序在 HTTPS 中运行吗?
编辑
这是 kubectl describe managedcertificate managed-cert
的输出
...
Spec:
Domains:
mydomain.com
www.mydomain.com
Status:
Certificate Name: mcrt-...
Certificate Status: Provisioning
Domain Status:
Domain: www.mydomain.com
Status: FailedNotVisible
Domain: mydomain.com
Status: FailedNotVisible
Events: <none>
看来是因为我的 DNS 配置错误。我添加了 A
记录,但是当仔细查看 update DNS 部分时,我注意到我的 CNAME
记录配置错误
在 this tutorial 之后,我在区域自动驾驶集群中的 GKE 上部署了一个应用程序。我使用链接到我拥有的域、静态 IP 和 Google HTTPS 托管证书的入口使其可公开访问。
通过 ip 访问我的应用程序,或者我的域名在 HTTP 中运行良好,但是在使用 HTTPS 时,我收到 ERR_SSL_VERSION_OR_CIPHER_MISMATCH mydomain.com uses an incompatible protocol
错误(我使用 IP 和域时都出现此错误) .事实上,在 Google Cloud Cnsole 上查询我的托管证书时,我看到它仍处于 PROVISIONING
状态(现在已经超过 3 天),并且我的域旁边有一个警告三角形指定 FAILED_NOT_VISIBLE
.
我检查了我的域名设置,它有一个 A
记录指向我的入口使用的静态 IP(我在学习教程时配置了它)。我还检查了 GKE 上的负载均衡器,它有一个使用我的托管证书的 HTTPS 目标代理
这是我的入口
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-app-api
annotations:
# specifies the name of the global IP address resource to be associated with the HTTP(S) Load Balancer
kubernetes.io/ingress.global-static-ip-name: my-app-ip
networking.gke.io/managed-certificates: managed-cert
kubernetes.io/ingress.class: "gce"
labels:
app: my-app-api
spec:
defaultBackend:
service:
name: my-app-api
port:
name: http
和我的托管证书
apiVersion: networking.gke.io/v1
kind: ManagedCertificate
metadata:
name: managed-cert
spec:
domains:
- mydomain.com
- www.mydomain.com
我使用 kubectl apply -f my-file.yaml
我不明白我做错了什么或遗漏了什么。有人可以帮我让我的应用程序在 HTTPS 中运行吗?
编辑
这是 kubectl describe managedcertificate managed-cert
...
Spec:
Domains:
mydomain.com
www.mydomain.com
Status:
Certificate Name: mcrt-...
Certificate Status: Provisioning
Domain Status:
Domain: www.mydomain.com
Status: FailedNotVisible
Domain: mydomain.com
Status: FailedNotVisible
Events: <none>
看来是因为我的 DNS 配置错误。我添加了 A
记录,但是当仔细查看 update DNS 部分时,我注意到我的 CNAME
记录配置错误