# No domain parsed in provider ACME

**URL:** <https://community.traefik.io/t/no-domain-parsed-in-provider-acme/4886>\
**Category:** Traefik v2\
**Tags:** letsencrypt-acme\
**Created:** [March 11, 2020, 7:21pm UTC](https://community.traefik.io/t/no-domain-parsed-in-provider-acme/4886 "2020-03-11T19:21:05Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![james](https://avatars.discourse-cdn.com/v4/letter/j/bc8723/32.png) [@james](https://community.traefik.io/u/james)\
**Post date:** [March 11, 2020, 7:21pm UTC](https://community.traefik.io/t/no-domain-parsed-in-provider-acme/4886/1 "2020-03-11T19:21:05Z")

</div>

Dear Community,

I'm facing an issue for a couple of days that I cannot solve. This is related to serving a website on let's encrypt using a HostRegexp as a domain. I'm getting this error message:

> time="2020-03-11T19:16:11Z" level=debug msg="No domain parsed in provider ACME" routerName=gitlab2@docker rule="HostRegexp(`cs-gitlab.hidden.ch`, `{subdomain:[a-z]+}.cs-gitlab.hidden.ch`)" providerName=letsencrypt\_resolver.acme

If I convert **HostRegexp** to **Host** and supply some fixed subdomains, it works great, so I suspect this is the issue.

I only use docker-compose to configure Traefik. I have one for traefik by itself:

```auto
version: '3.4'

services:
  reverse-proxy:
    # The official v2 Traefik docker image
    image: traefik:v2.1
    restart: always
    command:
      # Minimal configuration
      - --providers.docker
      - --entryPoints.web.address=:80
      - --entryPoints.websecure.address=:443
      # Authorize the web server to have self-signed certificates
      - --serverstransport.insecureskipverify=true
      # Configure Let's Encrypt to automatically generate TLS certificates
      - --certificatesResolvers.letsencrypt_resolver.acme.email=hidden@a.c
      - --certificatesResolvers.letsencrypt_resolver.acme.storage=/ssl/acme.json
      - --certificatesResolvers.letsencrypt_resolver.acme.httpChallenge.entryPoint=web
      # Enable to increase the verbosity of the logs of Traefik
      # - --log.level=DEBUG
    labels:
      # Redirect HTTP to HTTPS
      traefik.http.routers.http_catchall.rule: HostRegexp(`{any:.+}`)
      traefik.http.routers.http_catchall.entrypoints: web
      traefik.http.routers.http_catchall.middlewares: https_redirect
      traefik.http.middlewares.https_redirect.redirectscheme.scheme: https
      traefik.http.middlewares.https_redirect.redirectscheme.permanent: 'true'
    ports:
      # the HTTP port
      - 80:80
      # The HTTPS port
      - 443:443
    volumes:
      - traefik-ssl:/ssl
      # So that Traefik can listen to the Docker events
      - /var/run/docker.sock:/var/run/docker.sock:ro

volumes:
  traefik-ssl:

networks:
  default:
    external:
      name: traefik_network

```

And the second one for an application (here gitlab):

```auto
version: '3.4'

services:
  gitlab-certificates-generation:
    build:
      context: ./certs
      dockerfile: Dockerfile
    volumes:
      - 'gitlab-ssl:/ssl'
    entrypoint: openssl req -x509 -nodes -days 3650 -newkey rsa:3072 -keyout /ssl/cs-gitlab.hidden.ch.key | 
      -out /ssl/cs-gitlab.hidden.ch.crt -subj "/C=CH/ST=hidden/L=hidden/O=hidden/OU=IIUN/CN=cs-gitlab.hidden.ch" 
      -addext "subjectAltName = DNS:cs-gitlab.hidden.ch, DNS:*.cs-gitlab.hidden.ch"

  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'cs-gitlab.hidden.ch'
    privileged: true
    depends_on: 
      - gitlab-certificates-generation
    healthcheck:
      disable: true
    environment:
      GITLAB_SSH_PORT: 2200
      GITLAB_OMNIBUS_CONFIG: |
        ..some config..
    ports:
      - '2200:22'
    volumes:
      - 'gitlab-config:/etc/gitlab'
      - 'gitlab-log:/var/log/gitlab'
      - 'gitlab-data:/var/opt/gitlab'
      - 'gitlab-pages:/var/opt/gitlab/gitlab-rails/shared/pages'
      - 'gitlab-ssl:/etc/gitlab/ssl'
    labels:
      - traefik.http.routers.gitlab.rule=HostRegexp(`cs-gitlab.hidden.ch`, `{subdomain:[a-z]+}.cs-gitlab.hidden.ch`)
      - traefik.http.routers.gitlab.tls=true
      - traefik.http.services.gitlab.loadbalancer.server.scheme=https
      - traefik.http.services.gitlab.loadbalancer.server.port=443
      - traefik.http.routers.gitlab.tls.certresolver=letsencrypt_resolver

volumes:
  gitlab-config:
  gitlab-log:
  gitlab-data:
  gitlab-pages:
  gitlab-ssl:

networks:
  default:
    external:
      name: traefik_network

```

Any help would be greatly appreciated ! Many thanks !

---

<div class="post-metadata">

**Author:** ![ldez](https://sea2.discourse-cdn.com/flex020/user_avatar/community.traefik.io/ldez/32/5_2.png) [@ldez](https://community.traefik.io/u/ldez)\
**Post date:** [March 11, 2020, 7:29pm UTC](https://community.traefik.io/t/no-domain-parsed-in-provider-acme/4886/2 "2020-03-11T19:29:17Z")

</div>

Hello,

the automatic detection of the domain wroks with the `Host` rule (not with `HostRegexp`)

[https://docs.traefik.io/v2.1/https/acme/#domain-definition](https://docs.traefik.io/v2.1/https/acme/#domain-definition)

So you have to define explicitly the domains

[https://docs.traefik.io/v2.1/routing/providers/docker/#routers](https://docs.traefik.io/v2.1/routing/providers/docker/#routers)

```auto
    labels:
      - traefik.http.routers.gitlab.rule=HostRegexp(`cs-gitlab.hidden.ch`, `{subdomain:[a-z]+}.cs-gitlab.hidden.ch`)
      - traefik.http.routers.gitlab.tls=true
      - traefik.http.services.gitlab.loadbalancer.server.scheme=https
      - traefik.http.services.gitlab.loadbalancer.server.port=443
      - traefik.http.routers.gitlab.tls.certresolver=letsencrypt_resolver
      - traefik.http.routers.gitlab.tls.domains[0].main=cs-gitlab.hidden.ch
      - traefik.http.routers.gitlab.tls.domains[0].sans=*.cs-gitlab.hidden.ch

```
