我在Google云端的kubernetes上成功部署了我的网络应用。它通过http服务。我遵循了有关如何添加ssl证书的所有指南,并且根据Google云控制台添加了它,但是当您尝试以HTTPS身份访问Web应用程序时,它仅作为http工作。浏览器说"无法访问此网站"
我的入口YAML看起来像这样
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: no-rules-map
spec:
tls:
- secretName: testsecret
backend:
serviceName: s1
servicePort: 80
for Secret
apiVersion: v1
data:
tls.crt: [crt]
tls.key: [key]
kind: Secret
metadata:
name: testsecret
namespace: default
type: Opaque
答案 0 :(得分:2)
我使用此命令上传我的ssl证书
kubectl create secret tls tls-secret --key=/tmp/tls.key --cert=/tmp/tls.crt
而不是下面的yaml文件,它的效果更好。至少对于Google Cloud
apiVersion: v1
data:
tls.crt: [crt]
tls.key: [key]
kind: Secret
metadata:
name: testsecret
namespace: default
type: Opaque
确保当您在Google Cloud Console中Kubernates Engine -> Configuration
转到您的秘密类型为Secret: kubernetes.io/tls
且不仅Secret
时。当你使用yaml创建你的秘密时,它被创建为仅秘密而不是秘密:kubernetes.io/tls。
有关详细信息,请查看以下链接: https://github.com/kubernetes/ingress-gce#backend-https
https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer#remarks