【问题标题】:How can I enable SSL for Kubernetes services?如何为 Kubernetes 服务启用 SSL?
【发布时间】:2020-06-13 18:54:03
【问题描述】:
我有一个带有公共服务端点的 Spring Boot 应用程序的 Google Kubernetes Engine。但我想将端点从 http://... 更改为安全的 https://... 。
例如:
https://xx.xxx.xx.xxxx:8085/getAllStudent 而不是 http://xx.xxx.xx.xxxx:8085/getAllStudent
我该如何解决这个问题?
【问题讨论】:
标签:
spring-boot
google-app-engine
google-cloud-platform
google-kubernetes-engine
【解决方案1】:
看起来您正在使用 NodePort 类型的服务。如果你想通过这个端口接受 HTTPS,你背后的服务只需要打开一个 HTTPS 服务器而不是一个 HTTP 服务器。
不推荐像这样使用 NodePort,而是在 Kubernetes 中使用正确的 Ingress 功能,以便通过主机名公开服务。然后,Ingress 支持提供可用于加密通过 HTTPS 的流量的 SSL 证书。
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: tls-example-ingress
spec:
tls:
- hosts:
- sslexample.foo.com
secretName: testsecret-tls
rules:
- host: sslexample.foo.com
http:
paths:
- path: /
backend:
serviceName: service1
servicePort: 80