es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Puede redirigir HTTP a HTTPS con un Ingress de k8s?

He intentado todo en Stack Overflow y más allá, pero no puedo encontrar una solución que funcione para redirigir HTTP a HTTPS. Mi configuración actual está debajo.

Mi ingreso es:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingreso
  annotations:
    kubernetes.io/ingress.class: "nginx"
    kubernetes.io/ingress.global-static-ip-name: mi-dirección
    networking.gke.io/managed-certificates: mi-certificado
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
spec:
  rules:
  - host: midominio.com
    http:
      paths:
      - path: /*
        pathType: ImplementationSpecific
        backend:
          service:
            name: mi-servicio
            port:
              number: 2400

Y mi servicio es:

apiVersion: v1
kind: Service
metadata:
  name: mi-servicio
spec:
  type: NodePort
  selector:
    app: nodoweb
  ports:
  - name: mi-puerto-de-servicio
    protocol: TCP
    port: 2400
    targetPort: 2400
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para redirigir http a https utilizando el controlador de ingreso nginx, puede agregar las siguientes anotaciones a su ingreso:

    annotations:
      nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    

    Esto obligará a que todas las solicitudes http sean redirigidas a https.

    Además, puede eliminar las siguientes anotaciones ya que son redundantes:

    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
    

    Su ingreso actualizado se vería así:

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: ingress
      annotations:
        kubernetes.io/ingress.class: "nginx"
        kubernetes.io/ingress.global-static-ip-name: my-address
        networking.gke.io/managed-certificates: my-certificate
        nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    spec:
      rules:
      - host: mydomain.com
        http:
          paths:
          - path: /*
            pathType: ImplementationSpecific
            backend:
              service:
                name: my-service
                port:
                  number: 2400
    

    Después de realizar estos cambios, espere a que el controlador de ingreso se actualice y pruebe su aplicación accediéndola a través de http y https.

Comments are closed.