1. 문제
- HTTP에서 HTTPS로 리다이렉션 설정이 되지 않아 HTTP로 연결이 가능함
2. 해결방법
- GKE에 FrontendConfig 리소스 추가
apiVersion: networking.gke.io/v1beta1
kind: FrontendConfig
metadata:
name: http-to-https
spec:
redirectToHttps:
enabled: true
- GKE ingress에 annotations 추가
- networking.gke.io/v1beta1.FrontendConfig: http-to-https
apiVersion: "networking.k8s.io/v1"
kind: "Ingress"
metadata:
name: ingress
namespace: "default"
annotations:
networking.gke.io/managed-certificates: managed-cert
kubernetes.io/ingress.class: "gce"
kubernetes.io/ingress.global-static-ip-name: lb-ip
networking.gke.io/v1beta1.FrontendConfig: http-to-https
spec:
defaultBackend:
service:
name: api-gateway-server
port:
number: 8080
3. 결과
- http 접근 시 자동으로 https로 리다이렉트 됨
- 내부적으로는 HTTP 로드밸런서가 새로 추가되고 HTTPS 로드밸런서로 URL Map이 등록됨
- curl 로 호출 시 응답값 301 Moved Permanently 반환