如何在kubernetes GCE上启用https tls

时间:2018-02-28 18:25:06

标签: kubernetes cloud google-compute-engine google-kubernetes-engine kubernetes-security

我在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

1 个答案:

答案 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

enter link description here

https://cloud.google.com/kubernetes-engine/docs/tutorials/http-balancer#remarks