Kubernetes Ingress Redirect HTTP to HTTPS

The use of Gateway and VirtualService allows me to specify that an incoming HTTP request should be redirected to HTTPS.

When I use a k8s Ingress resource instead of Gateway and VirtualService and specify TLS then the ingress delivers content (HTTP 200) for both http on port 80 and https on port 443.
What I want: Http should only send a redirect (301) to https.