Migrating from 1 to 2 with custom LE certs

I have the following that works just fine with 1.7, been using it for years, pretty standard stuff. But for the life of me I can't get it to work with 2.2rc2 that I'm trying to migrate to. The certificate is a wildcard, *.mydomain.com and works fine with all my sub-domains in v1, lock present, certificate valid, in v2 not secure, self-signed Traefik default cert, looking at debug log I get "No default certificate, generating one". How do I get 2.2 to recognize and use my certificates? When I enter the Traefik v2 container I can see both /fullchain.pem and /privkey.pem and the contents are correct. This is driving me nuts, the docs are of no help.

traefik-v1/docker-compose.yml:

volumes:
  - "/etc/letsencrypt/live/mydomain.com/fullchain.pem:/fullchain.pem"
  - "/etc/letsencrypt/live/mydomain.com/privkey.pem:/privkey.pem"

traefik-v1.toml:

[entryPoints]
  [entryPoints.https]
    address = ":443"
    [entryPoints.https.tls]
      [[entryPoints.https.tls.certificates]]
        certFile = "/fullchain.pem"
        keyFile = "/privkey.pem"

traefik-v2/docker-compose.yml (unchanged from v1):

volumes:
  - "/etc/letsencrypt/live/mydomain.com/fullchain.pem:/fullchain.pem"
  - "/etc/letsencrypt/live/mydomain.com/privkey.pem:/privkey.pem"

traefik-v2.toml:

[entryPoints]
  [entryPoints.websecure]
    address = ":443"

traefik-v2-certs.toml:

[tls]
  [[tls.certificates]]
    certFile = "/fullchain.pem"
    keyFile = "/privkey.pem"
  [tls.stores]
    [tls.stores.default]
      [tls.stores.default.defaultCertificate]
        certFile = "/fullchain.pem"
        keyFile = "/privkey.pem"

nginx/docker-compose.yml:

labels:
  - "traefik.enable=true"
  - "traefik.http.routers.nginx.rule=Host(`server.mydomain.com`)"
  - "traefik.http.routers.nginx.entrypoints=websecure"
  - "traefik.http.routers.nginx.tls=true"