【发布时间】:2022-01-26 23:26:04
【问题描述】:
在this tutorial 之后,我在 GKE 上部署了一个应用程序,位于区域自动驾驶集群中。我使用链接到我拥有的域、静态 IP 和用于 HTTPS 的 Google 托管证书的入口将其公开访问。
通过 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>
【问题讨论】:
-
你解决了吗?你确定
nslookup mydomain.com指向外部静态IP吗?另外,你能显示kubectl describe managedcertificate managed-cert的输出吗? -
我无法解决这个问题。是的,nslookup 确实指向我的静态 IP 地址。我编辑了我的帖子以包含
kubectl describe managedcertificate managed-cert的输出,排除元数据,以免占用太多空间
标签: ssl https ssl-certificate google-kubernetes-engine kubernetes-ingress