Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Redirect HTTP to HTTPS automatically on GKE

I used Google-managed SSL certificate on GKE for set up SSL for my website. This is working example.com (that is insecure) and working also https://example.com(that is secure). when i access my website example.com why it's not redirect to https://example.com ? I used below yaml file to set up ssl.

apiVersion: networking.gke.io/v1
kind: ManagedCertificate
metadata:
  name: certificate-name
spec:
  domains:
    - domain-name1
    - domain-name2
like image 302
Ashikur Rahman Rashid Avatar asked Mar 16 '26 19:03

Ashikur Rahman Rashid


1 Answers

There is now a supported way of doing this in GKE with Frontend Config: https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#https_redirect

You will need GKE version at least 1.18.10-gke.600.

EDIT: As per comment by @mltsy, it also works in 1.17.17.

How we have it set up is:

apiVersion: networking.gke.io/v1beta2
kind: ManagedCertificate
metadata:
  name: <certificate-name>
spec:
  domains:
    - example.com
---
apiVersion: networking.gke.io/v1beta1
kind: FrontendConfig
metadata:
  name: <config-name>
spec:
  redirectToHttps:
    enabled: true
    responseCodeName: MOVED_PERMANENTLY_DEFAULT
---
kind: Ingress
apiVersion: networking.k8s.io/v1beta1
metadata:
  name: <ingress-name>
  annotations:
    kubernetes.io/ingress.class: "gce"
    networking.gke.io/managed-certificates: <certificate-name>
    kubernetes.io/ingress.global-static-ip-name: <ip-name>
    networking.gke.io/v1beta1.FrontendConfig: <config-name>
  labels:
    <labels-to-specify-app>
spec:
  rules:
    - host: example.com
      http:
        paths:
          - path: /*
            backend:
              serviceName: <service-name>
              servicePort: 80

like image 118
Andrej Palicka Avatar answered Mar 18 '26 13:03

Andrej Palicka



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!