Not able to redirect http to https while using aws nlb behind traefik

I am deploying the traefik in k8s with the below annotaions:

service.beta.kubernetes.io/aws-load-balancer-type: nlb
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: "tcp"
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:us-east-1:*:certificate/*
service.beta.kubernetes.io/aws-load-balancer-internal: "true"
service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
service.beta.kubernetes.io/aws-load-balancer-access-log-emit-interval: "5"
service.beta.kubernetes.io/aws-load-balancer-access-log-enabled: "true"
service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name: ""
service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix: ""

I want to redirect all the traffic from http to https. Redirection doesnt work and it results in an infinite loop with 301 error.