# V2, TLS, Let's Encrypt and http --\> https - SUCCESS!

**URL:** <https://community.traefik.io/t/v2-tls-lets-encrypt-and-http-https-success/2653>\
**Category:** Traefik v2\
**Tags:** docker\
**Created:** [October 29, 2019, 1:41am UTC](https://community.traefik.io/t/v2-tls-lets-encrypt-and-http-https-success/2653 "2019-10-29T01:41:30Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![clemenko](https://sea2.discourse-cdn.com/flex020/user_avatar/community.traefik.io/clemenko/32/2179_2.png) [@clemenko](https://community.traefik.io/u/clemenko)\
**Post date:** [October 29, 2019, 1:41am UTC](https://community.traefik.io/t/v2-tls-lets-encrypt-and-http-https-success/2653/1 "2019-10-29T01:41:30Z")

</div>

I wanted to post some success I had setting up Traefik v2 with Let's Encrypt with http --\> https using Docker. Take a look. It works AWESOME!

> <https://gist.github.com/clemenko/b8b524b03873841a6ab4351c086797d5>

---

<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:** [October 29, 2019, 10:09am UTC](https://community.traefik.io/t/v2-tls-lets-encrypt-and-http-https-success/2653/2 "2019-10-29T10:09:38Z")

</div>

Hello,

thank you for sharing your positive feedback 👍

I would suggest some simplifications:

```auto
version: "3.4"

services:
  traefik:
    image: "traefik"
    container_name: "traefik"
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    command:
      - "--api=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=true"
      - "--metrics.prometheus=true"
      - "--accesslog=true"
      - "--accesslog.filepath=/opt/traefik/access.log"
      - "--global.sendAnonymousUsage=true"
      - "--entryPoints.web.address=:80"
      - "--entryPoints.websecure.address=:443"
      - "--certificatesResolvers.mytlschallenge.acme.httpChallenge=true"
      - "--certificatesResolvers.mytlschallenge.acme.httpChallenge.entryPoint=web"
      - "--certificatesresolvers.mytlschallenge.acme.email=XXXXXXXXX"
      - "--certificatesresolvers.mytlschallenge.acme.storage=/opt/traefik/acme.json"
    labels:
      # Dashboard
      - "traefik.http.routers.dashboard.rule=Host(`dashboard.andyc.info`)"
      - "traefik.http.routers.dashboard.entrypoints=websecure"
      - "traefik.http.routers.dashboard.servvice=api@internal"
      - "traefik.http.routers.dashboard.tls.certresolver=mytlschallenge"
      - "traefik.http.routers.dashboard.middlewares=https-auth"

      # global redirect HTTPS
      - "traefik.http.routers.http-catchall.rule=HostRegexp(`{any:.+}`)"
      - "traefik.http.routers.http-catchall.entrypoints=web"
      - "traefik.http.routers.http-catchall.middlewares=redirect-to-https@docker"

      # middleware: Redirect HTTP->HTTPS
      - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
      - "traefik.http.middlewares.redirect-to-https.redirectscheme.permanent=true"
      
      # middleware: Basic Auth
      - "traefik.http.middlewares.https-auth.basicauth.users=admin:$$apr1$$XXXXXXXXXXXXXXXX"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "/opt/traefik/:/opt/traefik/"

  andyc:
    image: nginx:alpine
    container_name: "andyc"
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    labels:
      - "traefik.http.routers.andyc.rule=Host(`andyc.info`, `clemenko.net`, `clemenko.com`, `shirtmullet.com`)"
      - "traefik.http.routers.andyc.entrypoints=websecure"
      - "traefik.http.routers.andyc.tls.certresolver=mytlschallenge"
    volumes:
      - "/home/andyc/html/:/usr/share/nginx/html/:ro"
      - "/home/andyc/default.conf:/etc/nginx/conf.d/default.conf:ro"
      - "/home/andyc/logs/:/var/log/nginx/"
 
  wavfd:
    image: httpd:cgi
    container_name: "wavfd"
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    labels:
      - "traefik.http.routers.wavfd.rule=Host(`wavfd.org`, `www.wavfd.org`)"
      - "traefik.http.routers.wavfd.entrypoints=websecure"
      - "traefik.http.routers.wavfd.tls.certresolver=mytlschallenge"
    volumes:
      - "/home/wavfd/html/:/usr/local/apache2/htdocs/:ro"
      - "/home/wavfd/httpd.conf:/usr/local/apache2/conf/extra/httpd-vhosts.conf:ro"

  kennyclamp:
    image: httpd:cgi
    container_name: "kennyclamp"
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    labels:
      - "traefik.http.routers.kenny.rule=Host(`kennyclamp.com`, `www.kennyclamp.com`)"
      - "traefik.http.routers.kenny.entrypoints=websecure"
      - "traefik.http.routers.kenny.tls.certresolver=mytlschallenge"
    volumes:
      - "/home/kennyclamp/html/:/usr/local/apache2/htdocs/:ro"
      - "/home/kennyclamp/httpd.conf:/usr/local/apache2/conf/extra/httpd-vhosts.conf:ro"

```

---

<div class="post-metadata">

**Author:** ![clemenko](https://sea2.discourse-cdn.com/flex020/user_avatar/community.traefik.io/clemenko/32/2179_2.png) [@clemenko](https://community.traefik.io/u/clemenko)\
**Post date:** [October 29, 2019, 10:28am UTC](https://community.traefik.io/t/v2-tls-lets-encrypt-and-http-https-success/2653/3 "2019-10-29T10:28:16Z")

</div>

That looks SO much better. Let me play with it!

---

<div class="post-metadata">

**Author:** ![clemenko](https://sea2.discourse-cdn.com/flex020/user_avatar/community.traefik.io/clemenko/32/2179_2.png) [@clemenko](https://community.traefik.io/u/clemenko)\
**Post date:** [November 12, 2019, 11:28am UTC](https://community.traefik.io/t/v2-tls-lets-encrypt-and-http-https-success/2653/4 "2019-11-12T11:28:59Z")

</div>

FYI the new version works great!
