How to configure middleware with kubernetes-ingress? (middleware "xyz" does not exist)

May be I should begin a new thread. But at first try to ask here.

I have the similar problem with ingress and middleware.

My ingress looks like:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: gitea-prod-ext
  namespace: ci-tools
  annotations:
    traefik.ingress.kubernetes.io/router.middlewares: ci-tools-https-redirectscheme@kubernetescrd
    name: gitea-prod-ext
    namespace: ci-tools
    kubernetes.io/ingress.class: traefik
    cert-manager.io/cluster-issuer: letsencrypt-prod
    traefik.ingress.kubernetes.io/router.tls: "true"
  labels:
    traffic-type: external
spec:
  tls:
    - secretName: git-xxx-xx-tls
      hosts:
        - git.xxx.xx
  rules:
  - host: git.xxx.xx
    http:
      paths:
      - backend:
          serviceName: gitea-service
          servicePort: 3000
---
# Redirect to https
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: https-redirectscheme
spec:
  redirectScheme:
    scheme: https
    permanent: true

And https redirection in this ingress doesn't work.
curl http://git.xxx.xx - 404
curl https://git.xxx.xx - Ok

If I remove line "traefik.ingress.kubernetes.io/router.tls: "true"" then redirection starts working but I've got 404 in both curl requests.